数据库存储树形结构数据:邻接列表模式实现评论回复功能

本文介绍了如何在数据库中存储树形结构的评论回复数据,采用邻接列表模式来解决这个问题。通过定义包含id和pid的表结构,将评论和回复分开存储,并提供Java代码示例进行连接查询和数据整合,形成树形结构,最后将结果转换为JSON数据供前端展示。
摘要由CSDN通过智能技术生成

前言

最近公司业务需要评论回复的功能,主要是模仿着百度贴吧类似的评论模块展示,我简单的分成评论表和回复表,刚开始设计的时候,我简单的以为评论下回复根据创建时间升序排序就好,后面发现这样排序有太大bug,不知道回复的到底是谁,一天下来算是白做了
后面在交流群里问了下,了解到像评论回复一般都是以树形结构存储的,感觉学习

开始

评论的结构如下图

在这里插入图片描述

邻接列表模式

定义

根据节点之间的继承关系,显现的描述某一节点的父节点,从而建立二位的关系表。表的结构设计为{id,pid}:
在这里插入图片描述

表设计

本人设计的评论,回复表是隔离开的,因此,只有回复放入树形结构

CREATE TABLE `reply` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID编号',
  `fromName` varchar(50) COLLATE utf8mb4_vietnamese_ci NOT NULL COMMENT '回复用户名',
  `fromId` int(11) NOT NULL COMMENT '回复用户ID',
  `fromImg` longtext COLLATE utf8mb4_vietnamese_ci COMMENT '回复用户头像',
  `commentId` int(11) 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值