2011-11-24 95 views
1

它變得越來越普遍,在我的應用程序中,我必須維護級聯樹結構。MongoDB - 幫助級聯層次結構?

樹定義了權限以及與其關聯的所有對象。級聯下來,以便改變它,修改(或派生數據)整個子樹。

使用ActiveRecord和SQL處理起來相當複雜。一種選擇是對其進行非規範化並使用「路徑」:「root/child1/child2」和SQL like -s來使用它。

但我剛開始想知道數據庫本身是否適合這個,也許可以考慮使用MongoDB。

還有一些其他部分可能不適合與MongoDB一起使用:交易(在付款,預訂期間)。

所以我的問題是,切換到MongoDB有助於解決「層疊層次結構」問題?

+0

它可能是重複的:http://stackoverflow.com/questions/6448415/mongodb-storing-a-hierarchical-tree-structure – ShiningRay

+0

謝謝。那裏的鏈接提供了在MongoDB中使用樹的好概述。但不要認爲它是重複的,並且傾向於用「是」來回答我的問題。 –

回答

0

所以我的問題是,切換到MongoDB有助於解決「層疊層次結構」問題?

最主要的好處是能夠將整個層次結構存儲在一個文檔中。然後,你可以基本上用他們的權限「註釋」文檔的部分。很顯然,這樣的「註釋」實際上並不存在,它們只是文檔中的字段,所以這將涉及到爲所有這些構建一個圖層。

所以從理論上講,完全可以做你想做的事情,但它確實有一些限制。

特別是,當MongoDB查詢文檔時,它查詢整個文檔。如果您的整個層次結構適合單個文檔,那麼您可以通過一個查詢獲得整個層次結構。如果沒有,那麼你開始回到處理這個問題的SQL方法。