文章的评论及回复表的数据库设计方法
需求:可以评论文章,可以恢复评论,可以多级的互相回复1.思路一:做层级的关系做出来是效果就是只能一次层一层展示## 【文章】大家对大一开学有没有什么问题?A: 请问军训的枪是自己带还是学校里发?点击展开评论## 【文章】大家对大一开学有没有什么问题?A: 请问军训的枪是自己带还是学校里发?-B回复A:自己带-C回复A:学校发点击展开评论## 【文章】大家对大一开学有没有什么问题?A: 请问军训的枪
需求:可以评论文章,可以恢复评论,可以多级的互相回复
1.思路一:做层级的关系
做出来是效果就是只能一次层一层展示
## 【文章】大家对大一开学有没有什么问题?
A: 请问军训的枪是自己带还是学校里发?
点击展开评论
## 【文章】大家对大一开学有没有什么问题?
A: 请问军训的枪是自己带还是学校里发?
-B回复A:自己带
-C回复A:学校发
点击展开评论
## 【文章】大家对大一开学有没有什么问题?
A: 请问军训的枪是自己带还是学校里发?
-B回复A:自己带
-D回复B: 哈哈哈
-C回复A:学校发
每一次只能展示一层级的评论,通过评论父评论的 id,parentId 查询这一层所有评论
2.思路二:做 @ 关系
就是一次性展示所有层级的 评论,类似这种
## 【文章】大家对大一开学有没有什么问题?
A: 请问军训的枪是自己带还是学校里发?
-B回复A: 自己带
-D回复B: 哈哈哈
-C回复A:学校发
或者是互相 @ 的形式,展示在一层类似这种
## 【文章】大家对大一开学有没有什么问题?
A: 请问军训的枪是自己带还是学校里发?
-B@A: 自己带
-D@B: 哈哈哈
-C@A: 学校发
实现方法:每一篇文章对应一个 articleId ,每个评论除了要记录 评论的 parentId 之外还要记录,articleId,(如果是文章下的第一层评论,parentId 就是 articleId)
每次查询的时候,直接通过 articleId 查出所有文章下的子评论,
然后在程序(比如 java )中对查询的数据进行处理(因为不建议用SQL进行处理和多次查询,所以之能在程序实现。如果不用 articleId 将会得到全表,数据传输太大,不科学,articleId 就相当于一个限制)
处理的方法有很多,内存的运算是很快的,
可以用链表和数组表示他们的关系,这个就很简单了。
上面的思路都是我个人想法,并实时更新,如果您有更好的建议,欢迎在评论区里面留言
看到一位大牛有更详细的回答,设计思路和我差不多「comment_id字段来表示该回复挂在的根评论id,这样设计也是出于性能方面的考虑」
数据库设计——评论回复功能
更多推荐
所有评论(0)