mongodb SNS design 问题


在做一个小型社交网站时,需要涉及到 用户 状态 评论 等几张表,用户可以发表多个状态,每个状态下会有多个评论信息。
关于 状态 表和 评论 表的设计遇到了一些问题,即用户信息类似于用户名和用户头像等信息是否要embeded到两张表中,还是只在表中存放用户的ID信息。
现在有两种解决方案:

  • 两张表中只存放用户ID,用户具体信息存放在用户表中,但是这种方案在查询时会影响效率,特别是具体访问一条状态时,就要获取该状态的所有评论,而每条评论都要有用户的头像和昵称等等,若每次都分开查询的话,感觉效率会很低。
  • 在两张表中存放用户的信息,这种方法在查询时会非常方便,但是用户更新自身状态时会非常麻烦,要去遍历这两张表去逐个更新里面的信息。

不知具体应该选用哪种方案?或者是否有更好的方案?

mongodb

蒙奇D路飞 10 years, 1 month ago

状态做子数组文档,单个状态下又有评论的子文档数组

..弦.. answered 11 years, 4 months ago

Your Answer