MongoDB - 有助于级联层次结构?
Posted
技术标签:
【中文标题】MongoDB - 有助于级联层次结构?【英文标题】:MongoDB - helps with cascading hierarchies? 【发布时间】:2011-11-24 01:35:54 【问题描述】:在我的应用程序中,我必须维护级联树结构变得越来越普遍。
树定义了权限和与之关联的任何对象。向下级联,以便更改一个,修改(或导出数据)整个子树。
使用 ActiveRecord 和 SQL 处理起来相当复杂。一种选择是将其反规范化并使用 "paths": "root/child1/child2" 和 SQL like
-s 来处理它。
但我只是开始怀疑数据库本身是否适合这个,也许考虑使用 MongoDB。
还有其他部分可能不适合与 MongoDB 一起使用:事务(在付款、预订期间)。
所以我的问题是,切换到 MongoDB 是否有助于解决“级联层次结构”问题?
【问题讨论】:
可能重复:***.com/questions/6448415/… 谢谢。那里的链接很好地概述了在 MongoDB 中使用树。但不要认为这是重复的,让我用“是”来回答我的问题。 【参考方案1】:所以我的问题是,切换到 MongoDB 是否有助于解决“级联层次结构”问题?
老实说,主要的好处是能够将整个层次结构存储在一个文档中。然后,您基本上可以使用他们的权限“注释”文档的某些部分。显然,这样的“注释”实际上并不存在,它们只是文档中的字段,因此这将涉及您为所有这些构建一个层。
所以从理论上讲,做你想做的事是完全可能的,但它确实有一些限制。
特别是,当 MongoDB 查询一个文档时,它会查询整个文档。如果您的整个层次结构适合单个文档,那么您可以通过一个查询获得整个层次结构。如果不是,那么您开始回归到处理此问题的 SQL 方法。
【讨论】:
以上是关于MongoDB - 有助于级联层次结构?的主要内容,如果未能解决你的问题,请参考以下文章