我想知道是否有关于何时使用新文档以及何时使用子文档的经验法则。在 sql 数据库中,我曾经通过规范化规则打破所有关系以分离表并将它们与键连接,但我找不到关于在 mongodb 中做什么的好方法(我不知道其他 no-sql 数据库如何处理)。任何帮助将被赞赏。亲切的问候。
虽然没有固定的规则,但在 noSql 中建模数据时,有一些足够直观的通用指南。
几乎所有1-1 的情况都可以用子文档处理。例如: 用户有一个地址。很可能每个用户的地址都是唯一的(在您的系统环境中,比如社交网站)。因此,将地址保存在另一个集合中会浪费空间和查询。地址子文件是最好的选择。
另一个例子:数百名员工共享同一个建筑物/地址。在这种情况下,保持 1-1 是对空间的不良使用,并且每当任何地址发生轻微更改时都会花费大量更新,因为它作为子文档在多个员工文档中复制。因此,一个地址应该有很多员工,即一对多的关系
您一定已经注意到,在 noSql 中有多种方式来表示 1 对多关系。
用于检索的建模文档、文档设计注意事项和来自 Couchbase(另一个 noSql 数据库)的建模关系非常适合阅读,同样适用于 mongodb。