使用MongoDB。我应该将数据库分为两个集合吗?

时间:2019-04-26 20:05:49

标签: mongodb

后端/数据库新手。

要让您对我的应用程序有个大致的了解,请考虑使用任何论坛类型的网站。

用户拥有一个帐户,可以发布信息。在我的应用中,普通用户每天将发布几则帖子。

我应该将此数据分为两个不同的集合吗?

1个收藏版本:

User Model
{
  _id: <object_id1>,
  username: String,
  password: String,
  followers: Array,
  posts: [
    {
      title: String,
      content: String,
      img_url: String
    }
  ]

2收藏版

User Model
{
  _id: <object_id1>
  username: String,
  password: String,
  followers: Array,
}

Posts Model
{
  _id: <object_id2>,
  user_id: <object_id1>, // same as _id within user model
  title: String,
  content: String,
  img_url: String,
}

如果使用1个集合,则必须将所有帖子存储到用户数据库中,但是如果将其拆分为另一个集合,则可以使用db查询来匹配user_id以从该用户那里获取所有帖子。

哪个会更有效?最好将它们全部保留在1个集合中?

我倾向于2个收藏集,因为我需要一种从所有用户那里获取最新帖子的方法。如果我有2个收藏集,我就可以获取最新记录。

0 个答案:

没有答案