我想知道是否有关于何时使用新文档以及何时使用子文档的经验法则。在sql数据库中,我曾经通过规范化规则将所有实现分解为单独的表,并用键连接它们,但是我找不到关于mongodb中要做什么的好approch(我不知道其他的无sql数据库)处理)。 任何帮助都将得到帮助。 亲切的问候。
答案 0 :(得分:3)
虽然没有固定的规则,但在noSql中建模数据时,有一些直观的指导原则可以遵循。
几乎所有 1-1 的案例都可以使用子文档处理。例如:用户有一个地址。很可能是每个用户的地址都是唯一的(在您的系统环境中,比如社交网站)。因此,在另一个集合中保留地址将浪费空间和查询。地址子文档是最佳选择。
另一个例子:数百名员工共用同一建筑物/地址。在这种情况下,保持1-1是对空间的不良使用,并且只要在任何地址中发生轻微更改,就会花费大量更新,因为它作为子文档被复制到多个员工文档中。因此,地址应该有许多员工,即 1到很多关系
您一定注意到在noSql中有多种方式来表示1对多的关系。
Modeling documents for retrieval,Document design considerations和Modeling Relationships(另一个noSql数据库)是非常好的读取,同样适用于mongodb。