我是mongodb的新手,我想创建以下简单的模式。
我将用关系思维来描述它:3个表->公司,产品,交易
公司与交易是一对多的关系。产品与交易是一对多的关系。
因此,deals表是公司和产品之间的链接,它的结构如下
deal_id | company_id | product_id | extra_fields
我应该如何在mongodb中实现这个结构?我应该使用嵌入式建模还是引用?你有什么建议?
提前谢谢你。
发布于 2014-02-21 17:29:58
为此,我将使用3个表,与您在平面、非层次或结构化SQL关系数据库中所做的完全相同。
您可以说交易将嵌入到公司中,也许可以,但如果交易经常更改,您可能会看到由于非就地更新而导致的顶层文档中的碎片。
就地更新由不需要为了能够存储而将文档移动到磁盘的另一部分的更新来指定。当然,与需要移动到磁盘的新的连续部分相比,这要快得多,开销也更小。不仅如此,剩余的空间,如果你不走运,可能会留在那里,永远不会被填满。
解决这种情况的唯一方法是定期运行db.repair(),有些用户出于某些原因而这样做。
相反,考虑到这一点以及交易的使用和查询模式,我认为它们应该进入自己的表中。
https://stackoverflow.com/questions/21929998
复制相似问题