大家好,我先描述一下基本情况
我在搭建一个类似知乎的简单版社区(基本简单版本,汗,我知道知乎背后太复杂了,我只是做一个最简单的问答,便于理解,所以找了知乎为例),知乎里面的回答可以被每一个人评论,而且别人可以回复这个评论,我对
问题答案的评论在数据库方面该如何设计
有些疑惑每一个评论应该存储的是:
回答的ID
评论者ID
评论的内容
评论的时间
就像这这样
读取并显示的问题
这样在显示问题的时候也可以根据
问题ID
查询到其相关的所有的评论,
比如这样:
我的问题是像这种评论的回复该怎么设计呢??还有就是回复别人的回复
我猜想这个数据的设计是*
评论的ID
回复的内容
回复者的ID
时间
这样的话,就需要显示一个答案的评论的时候,
先去查询该答案的所有评论ID
遍历所有评论,根据评论ID查询该评论的回复,
遍历该评论的所有回复, 查询该回复时候有回复,有点递归了
不知道这样是否可以,烦劳指教了,学生党一枚,惶恐.
基本正确。关于回复评论的查询其实没有那么麻烦,知乎的评论其实是平级的,查询时正常查询,显示时多显示个回复对象的名称即可
三张表:问题(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)
既然回复评论不是嵌套的,那就只是多显示了个被回复者名字罢了。因为很有可能,被回复者被拓展为多人。
我也是学生党,我的想法是既然都是一条记录,为什么不能设计一张表呢,所有的内容都在一张表内,区分该评论是发表的,还是回复的