猿问

mysql如何检索评论和针对评论的回复

需求是获取文章下的评论以及评论的回复大概形式是这样
A:这是一条评论
B:这是评论的回复
回复B:这是评论的回复的回复
回复C:这是评论的回复的回复的回复
然后之前的做法是:
先select出评论
在foreach评论逐条select出评论的所有回复,再按时间排序,归类到评论的子集中
但是一旦评论多了之后就会出现性能瓶颈,如何科学高效地拿到这个评论和回复的集合?包括数据表如何设计和代码的逻辑,求大神赐教。
补充:表的结构可以修改,我想知道科学一点的表一般是怎么设计的?或者说如何设计这个表能够最大程度提高性能
再补充:还有一个问题,就是如果我只需要获得单个评论下的三条回复内容,以及单个评论下所有回复的数量,又该怎么处理这个逻辑或者说sql怎么写呢?
Qyouu
浏览 803回答 2
2回答

回首忆惘然

可以加一个字段depth比如1-3-5;首先查评论肯定是要分页的每页数量可控。每一条再根据这个depth查询他的回复评论。这样可以减少查库次数,效率会好一些

莫回无

评论其实是一个树形的结构,可以用两个字段标识:response_id//回复的评论idroot_response_id//回复的最根级评论查询的时候先查response_id为空的记录即根级目录(比如查出每页5条或者10条),再来一个IN查询,总共2次。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答