2014-02-21 40 views
0

我是mongodb的新手,我想创建以下简单模式。嵌入的mongodb模式设计或参考

,我将描述它在关系的思考: 3表 - >公司,产品涉及

公司有关一对多的交易功能。 产品是相关的一对多的交易。

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

DEAL_ID | company_id | product_id | extra_fields

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

预先感谢您。

+1

这取决于...看到这里:http://docs.mongodb.org/manual/applications/data-models/ – heinob

+0

我同意@heinob,这一切都取决于你有什么数据和你将如何去用它。现在还没有确切的答案说这样或那样做。除非你想获得关于你想**的事情的具体**,否则其他任何事情都只是猜测。 –

回答

0

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

你可以说交易会嵌入到公司,也许他们可能会成交,但是如果交易经常变化,你可能会看到由于非原地更新而导致的顶级文档中的碎片。

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

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

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