在我的应用程序中,我必须保持级联树结构变得越来越常见。
树定义权限以及与之关联的任何对象。级联向下,以便更改一个,修改(或导出数据)整个子树。
使用ActiveRecord和SQL,处理起来非常复杂。一种选择是对其进行非规范化并使用“paths”:“root / child1 / child2”和SQL like
- s来处理它。
但我开始想知道数据库本身是否适合这个,也许可以考虑使用MongoDB。
还有其他部分可能不适合与MongoDB一起使用:交易(在付款,预订期间)。
所以我的问题是,切换到MongoDB有助于解决“级联层次结构”问题吗?
答案 0 :(得分:0)
所以我的问题是,切换到MongoDB有助于解决“级联层次结构”问题吗?
主要的好处是诚实地将整个层次结构存储在一个文档中的能力。然后,您基本上可以使用其权限“注释”文档的某些部分。显然,这样的“注释”实际上并不存在,它们只是文档中的字段,因此这将涉及为所有这些构建一个层。
所以从理论上讲,很有可能做你想做的事,但确实有一些限制。
特别是,当MongoDB查询文档时,它会查询整个文档。如果整个层次结构适合单个文档,那么您将使用一个查询获得整个层次结构。如果没有,那么你开始回到处理这个的SQL方法。