我是文档商店(mongodb)的新手,但想知道何时使用嵌入式关系以及何时使用引用?如http://docs.mongodb.org/manual/core/data-modeling-introduction/
中所定义我的猜测是,如果关系只在一个地方使用它应该嵌入其他人使用引用吗?
这个决定的含义是什么?
答案 0 :(得分:0)
嗯,你经历过的链接确实很清楚:
通常,使用标准化数据模型:
- 嵌入时会导致数据重复,但不会 提供足够的读取性能优势来超过 重复的含义。
- 代表更复杂的多对多关系。
- 为大型分层数据集建模。
醇>
我认为虽然对于大多数情况,MongoDB已经过优化,可以处理嵌入数据的查询。它的构建是为了做到这一点,MongoDB(我相信)的重点是消除连接和规范化。您应该尝试尽可能多地在文档中放入数据。
该页面还说明了使用引用的某些缺点,当嵌入时可以实现相同的目的(您可能会发现这种情况经常发生):
但是,客户端应用程序必须发出后续查询来解析引用。换句话说,规范化数据模型可能需要更多往返服务器。
此外,如果您使用过多的引用而不是嵌入数据,则可能会失去文档提供的保证一致性优势,因为对文档的操作是原子操作,但实际上不是。