這是一個後續到:
MySQL - Is it possible to get all sub-items in a hierarchy?MySQL - 處理這種分層數據的最佳方法?
我有一個任意深度的鄰接表模型表(我在我可以將其轉換爲嵌套集模型點
我讀了關於如何使用嵌套集模型的MySQL數據,雖然它似乎變得越來越複雜並且非常複雜,以至於無法完成插入,更新和刪除等基本功能。
另一個博客展示瞭如何在鄰接列表模型中使用觸發器系統,以保存一個將每個對象與其祖先關聯起來的祖先表。
現在我需要能夠返回給定節點的所有子節點的列表,以更改或刪除它們。這種層次結構一旦創建就不會一直改變,但是會有大量的層次結構。
的三種方法我看到的是:
創建存儲過程時這將做到這一點返回所有孩子遞歸查詢。
轉換爲嵌套集模型這將需要進入複雜性,並可能創建一個存儲過程來添加,編輯和刪除。
在插入/刪除觸發器上創建祖先表以處理所有數據。
如果還有其他方法我不探索,請讓我知道,我會更新此列表。
*我將這個添加爲評論而不是答案,因爲這是我最近纔看到的:我沒有使用這種方法,但我還沒有完全理解,但我認爲你可能至少會發現它很有趣。[[用連續分數嵌套間隔樹編碼](http://arxiv.org/ftp/cs/papers/0402/0402051.pdf)(Vadim Tropashko)看起來很有趣,而且是對[與Farey分數的嵌套間隔](http://arxiv.org/html/cs/0401014)。和所有的方法一樣,有利弊 - 這只是你可能想添加到你的列表中的東西。 – Mike 2010-07-04 10:55:47
你有沒有考慮過不使用關係數據庫?我忍不住想像圖形數據庫這樣的東西會更好。 – 2010-07-06 15:15:10
從未聽說過圖形數據庫?我也需要知道它在速度和優化方面的比較。這只是整個系統的一小部分,所以它必須與其餘的部分並駕齊驅。 – 2010-07-06 19:33:53