MongoDB - 有助于级联层次结构吗?

时间:2011-11-24 01:35:54

标签: sql ruby-on-rails ruby mongodb mongoid

在我的应用程序中,我必须保持级联树结构变得越来越常见。

树定义权限以及与之关联的任何对象。级联向下,以便更改一个,修改(或导出数据)整个子树。

使用ActiveRecord和SQL,处理起来非常复杂。一种选择是对其进行非规范化并使用“paths”:“root / child1 / child2”和SQL like - s来处理它。

但我开始想知道数据库本身是否适合这个,也许可以考虑使用MongoDB。

还有其他部分可能不适合与MongoDB一起使用:交易(在付款,预订期间)。

所以我的问题是,切换到MongoDB有助于解决“级联层次结构”问题吗?

1 个答案:

答案 0 :(得分:0)

  

所以我的问题是,切换到MongoDB有助于解决“级联层次结构”问题吗?

主要的好处是诚实地将整个层次结构存储在一个文档中的能力。然后,您基本上可以使用其权限“注释”文档的某些部分。显然,这样的“注释”实际上并不存在,它们只是文档中的字段,因此这将涉及为所有这些构建一个层。

所以从理论上讲,很有可能做你想做的事,但确实有一些限制。

特别是,当MongoDB查询文档时,它会查询整个文档。如果整个层次结构适合单个文档,那么您将使用一个查询获得整个层次结构。如果没有,那么你开始回到处理这个的SQL方法。