mongodb架构设计嵌入或引用

时间:2014-02-21 09:16:45

标签: mongodb reference schema

我是mongodb的新手,我想创建以下简单架构。

我将在关系思考中描述它: 3个表 - >公司,产品,交易

公司与交易中的一对多有关。 产品与一对多有关。

所以交易表是公司和产品之间的联系 它将具有以下结构

deal_id | company_id | product_id | extra_fields

我该如何将这个结构实现到mongodb?我应该使用嵌入式建模还是参考? 你有什么建议??

提前谢谢。

1 个答案:

答案 0 :(得分:0)

为此,我将使用3个表格,与您在平面,非层次结构或结构化SQL关系数据库中完全相同。

你可以说交易会嵌入到公司中,也许它们可能会有,但如果交易经常发生变化,你会发现由于非就地更新而导致顶级文档中存在碎片。

就地更新由一个不需要文档移动到磁盘的另一部分以便能够存储的更新指定。当然,这比需要移动到磁盘的新的连续部分的速度要快得多并且更少。不仅如此,如果不幸的话,剩下的空间可以留在那里而不会被填满。

解决这种情况的唯一方法是定期运行db.repair()某些用户出于某种原因这样做。

考虑到这一点以及交易的使用和查询模式,我认为他们应该进入他们自己的表。