【发布时间】:2014-10-18 14:26:46
【问题描述】:
我开始学习 MongoDB,有一次我问自己如何解决 MongoDB 中的“一对多”关系设计。在搜索时,我在其他帖子/文章中发现了许多 cmets,例如“你在思考关系”。 好的我同意。在某些情况下,例如信息重复不会成为问题,例如 CLIENTS-ORDERS 示例。
但是,假设您有以下表格:ORDERS,其中嵌入了 DETAIL 结构,其中包含客户购买的 PRODUCTS。 因此,为了一件事或另一件事,您需要更改已嵌入多个订单的产品名称(或另一种信息)。
最后,你不得不在 MongoDB 中进行一对多的关联(也就是说,将 ObjectID 字段作为链接到另一个集合),这样你就可以解决这个简单的问题,不是吗? 但是每次我发现一些关于此的文章/评论时,它都会说这将是 Mongo 的性能故障。有点失望
在 MongoDB 中是否有另一种方法来解决/设计此问题而不会出现性能故障?
【问题讨论】:
-
我邀请您查看这些博文:blog.mongodb.org/post/88473035333/…(以及第 1 和第 2 部分)
-
不要忘记 mongodb 是一个 NoSQL 数据库,所以如果你的数据库中有很多这样的关系,你可能应该选择一个 SQL 数据库,因为 mongodb 总是会在这方面表现得更少边。这篇博文解释得很好:sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/…
-
@Baptistel Wuaw !感谢您链接的精彩文章。这让我大开眼界,证实了我对 MongoDB 的假设是正确的。正如作者所说:“MongoDB 文档告诉你它擅长什么,而不强调它不擅长什么”。所以我觉得更好,所以把我的努力放在另一个地方。
-
@BaptisteL: Sarah Mei 可能是一个优秀的程序员,但她不是 MongoDB 专家。读起来好像她只在 2 个非常简单的 MongoDB 项目中工作,并制作了几个 beginner's mistakes。她嵌套了文档,尽管它是多对多的关系(剧集/演员)和具有无限元素的嵌套数组(社交提要)。为了她的辩护,手册可能没有像今天那样解释data modeling。
-
这个问题比较复杂。我发现文章有很好的解释blog.mongodb.org/post/87200945828/…
标签: mongodb