需求:可以评论文章,可以恢复评论,可以多级的互相回复

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,这样设计也是出于性能方面的考虑」
数据库设计——评论回复功能

更多推荐