【发布时间】:2015-08-30 19:03:23
【问题描述】:
我有一个名为 posts 的集合,其中包含多个文章帖子和一个名为 users 的集合,其中包含大量用户信息。每个post 都有一个名为author 的字段,它引用users 集合中的帖子作者。
在我的主页上,我将查询posts 集合并将帖子列表返回给客户端。因为我还想显示帖子的作者,所以我需要执行类似 sql 的连接命令,以便所有帖子都有作者姓名、ID 等。
如果我返回一个包含 40 个帖子的列表,我必须执行 40 个 sqllike-joins。这意味着每次我都会进行 41 次查询以获取包含作者信息的帖子列表。这似乎真的很贵。
我正在考虑在存储帖子信息时存储作者信息。这样我只需要进行 1 次查询即可检索所有帖子和作者信息。但是,当用户信息发生变化(例如名称更改)时,列表就会过时,这样管理列表似乎不太容易。
那么有没有更好或标准的方法呢?
ps:我用的是mongodb
【问题讨论】:
-
核心文档中有一整节的常见示例和案例。 Data Modelling
-
是的,感谢我只是让问题变得非常简单。实际情况非常复杂,1 个用户个人资料链接到多个属性,如 pagelikes、reviews、checkins...
-
例如上面的 40 个帖子是同一作者的。当作者更改名称时,您只需更新帖子 40 次。这似乎很便宜(对我来说)。但我不确定是否有更通用的方法。
标签: mongodb join database-design database