数据库结构常量

Database structure constants

我加入了这个使用 MongoDB 的新项目,我看到了这个结构:

集合:用户

salutation (ObjectId)   name (String)   status (ObjectId)
ObjectId("111")         Mark            ObjectId("112")

集合:值

_id               description (String)
ObjectId("111")   Mr.
ObjectId("112")   active

对于所有不可更改的值,它们指的是Values 集合的id。我不知道这是否是关系数据库中的常见做法,但我目前还没有在 MongoDB 中看到它。

他们使用 Nestjs 和 Mongoose。

对于每个请求,他们需要查询用户集合和多次值集合。这是一个好方法吗?

请避免使用 Values 集合,这在 mongo 中不是一个好的标准。如果您想要一个有效的称呼值列表,您可以创建一个称呼集合等等。

然而,一切都将取决于用例。有时您将能够嵌套属性,有时您将需要一个不同的集合并使用对象 ID 指向该新集合。

您可以在此处阅读所有 mongo 设计模式和每个用例:https://www.mongodb.com/blog/post/building-with-patterns-a-summary

我觉得在这种情况下,您应该将用户的值嵌套在用户集合中,这样就可以了

你可以有这样的东西:

{
  "name": "Derek",
  "status": "active",
  "salutation": "Mr."
}

否则,您将需要以某种方式进行查找以获取值,这不会有很好的性能。