问答网站的数据库是怎么设计的?

比如像本站思否的问答,数据表结构的关联关系是怎样的?

用户表->问题表,一对多
问题表->回答表,一对多
回答表->评论表,一对多
评论表->回复表,一对多

问题
1、上面的表之间的关系是这样吗?
2、对于回复表,有你回复我,我回复你,别的用户也可以来回复,那么回复表的字段应该怎么设计?
3、性能问题。假设总共有10万个问题,每个问题有5个回答,每个回答有5条评论,每条评论有5条回复,那么回复表共有1055*5=1250万条数据,当从问题列表页点击进入问题详情页的时候,这么多层的关联查询,怎么优化性能?

阅读 6.4k
2 个回答
  1. 用户和问题表这个不难设计哈。每个问题有个用户ID即可。
  2. 每个回答有用户ID和问题ID也不难。
  3. 评论的话要分开是 问题的评论还是答案的评论(也可以不分开,根据type区分,但是强烈建议分开,单一职责嘛)

问题评论的话就是 问题ID,评论人ID,上级评论ID(你回我我回你这种情况)。答案评论类似

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题