【问题标题】:mongodb schema design embedded or referencemongodb架构设计嵌入或参考
【发布时间】:2014-02-21 22:14:43
【问题描述】:

我是 mongodb 的新手,我想创建以下简单模式。

我会用关系思维来描述它: 3 个表 -> 公司、产品、交易

公司与交易是一对多的。 产品与交易是一对多的。

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

交易ID | company_id |产品编号 |额外字段

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

提前谢谢你。

【问题讨论】:

  • 我同意@heinob,这完全取决于您拥有什么数据以及您将如何使用它。在这一点上没有一个明确的答案可以说以一种或另一种方式去做。除非您想具体了解自己想要做什么,否则其他任何事情都只是猜测。

标签: mongodb reference schema


【解决方案1】:

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

您可以说交易将嵌入到公司中,也许他们可以这样做,但如果交易经常变化,您可能会在顶级文档中看到由于非就地更新而导致的碎片。

就地更新由不需要文档移动到磁盘的另一部分以便能够存储的更新指定。这当然比需要移动到磁盘的新连续部分的速度快得多,开销也更少。不仅如此,如果你不走运,剩余的空间可能会被留在那里而永远不会被填满。

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

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

【讨论】:

    猜你喜欢
    • 2013-02-09
    • 2011-10-13
    • 1970-01-01
    • 2012-08-25
    • 2011-05-25
    • 1970-01-01
    • 2013-03-03
    • 2018-01-26
    相关资源
    最近更新 更多