数据库存储树形结构数据
前言
最近公司业务需要评论回复的功能,主要是模仿着百度贴吧类似的评论模块展示,我简单的分成评论表和回复表,刚开始设计的时候,我简单的以为评论下回复根据创建时间升序排序就好,后面发现这样排序有太大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)