为 MongoDB 中的每个新对象创建多个集合是否错误?

Is It Wrong To Create More Than One Collection For Every New Object in MongoDB?

我正在构建一个应用程序,旨在充当教育机构和盈利组织之间的中介,以便该应用程序可以注册新学校、大学等,然后为每所新学校创建一个新集合,大学..我创造。但我在 Whosebug 上阅读了一些 posts,有些人说根据 post 请求创建新集合是错误的。但问题是每所学校都有不同的学生、教师、工作人员...等,将不同学校的所有学生存储在一个嵌入式文档 中似乎不合逻辑。那么我应该做什么?

是的,正确创建每个学校的集合是有问题的,但是使用一些数据库 design/data 建模技术可以在这里帮助你

由于学校可以被视为一个学院,所以我们可以拥有一个学院集合,其中每个学院都有自己唯一的 Id

Institutes

{
  _id: "<Institute id>",
  name: "<school name>",
  desc: "<desc>"
  ...others
}

然后我们可以为用户创建一个集合,其中包含用户的所有信息,如姓名、联系信息等。

Users

{
  _id: "<user id>"
  name: "<user name>"
  ...others
}

然后我们可以创建一个集合,显示哪个用户与哪个机构相关联并扮演什么角色

User_Associated_Institute

{
  _id: {
    school_id: <Institute id>,
    user_id: <user id>
  },
  role: <Staff/Teacher/Student>,
  ...other
}

然后我们终于可以收集到哪个学院开设的所有课程了

Courses_Offered_Institute

{
  _id: "<course id>",
  name: "<course name>",
  desc: "<desc>",
  institutes: ["<Institute id>"],
  ....others
}

这只是一个建议,您可以根据自己的用例修改设计