首页 > 问答系统的评论和回复的逻辑和数据库设计疑惑?

问答系统的评论和回复的逻辑和数据库设计疑惑?

大家好,我先描述一下基本情况

  1. 我在搭建一个类似知乎的简单版社区(基本简单版本,汗,我知道知乎背后太复杂了,我只是做一个最简单的问答,便于理解,所以找了知乎为例),知乎里面的回答可以被每一个人评论,而且别人可以回复这个评论,我对问题答案的评论在数据库方面该如何设计有些疑惑

  2. 每一个评论应该存储的是:

  1. 回答的ID

  2. 评论者ID

  3. 评论的内容

  4. 评论的时间

  5. 就像这这样

读取并显示的问题

这样在显示问题的时候也可以根据问题ID查询到其相关的所有的评论,
比如这样:

我的问题是像这种评论的回复该怎么设计呢??还有就是回复别人的回复


我猜想这个数据的设计是*

  1. 评论的ID

  2. 回复的内容

  3. 回复者的ID

  4. 时间

这样的话,就需要显示一个答案的评论的时候,

  1. 先去查询该答案的所有评论ID

  2. 遍历所有评论,根据评论ID查询该评论的回复,

  3. 遍历该评论的所有回复, 查询该回复时候有回复,有点递归了

不知道这样是否可以,烦劳指教了,学生党一枚,惶恐.


基本正确。关于回复评论的查询其实没有那么麻烦,知乎的评论其实是平级的,查询时正常查询,显示时多显示个回复对象的名称即可


三张表:问题(question)/回答(answer)/评论(reply)

question(id,            user_id,content)
answer  (id,question_id,user_id,content)
reply   (id,answer_id,  user_id,content)

就拿来说:
提问者(楼主)发了一个问题,这个问题有多个回答(层主),在数据库是一对多的关系.每个回答又可以有多个回复(评论),也是一对多的关系.

其实下面这几种都是常见的一对多的关系:
博客:文章(article)/评论(comment)/回复(reply)
问答:问题(question)/回答(answer)/评论(reply)
论坛:主题(topic)/回帖(post)/评论(reply)


既然回复评论不是嵌套的,那就只是多显示了个被回复者名字罢了。因为很有可能,被回复者被拓展为多人。


我也是学生党,我的想法是既然都是一条记录,为什么不能设计一张表呢,所有的内容都在一张表内,区分该评论是发表的,还是回复的

【热门文章】
【热门文章】