可能重複的樹木:
What is the most efficient/elegant way to parse a flat table into a tree?數據庫結構和查詢層次數據和數據
這我發現相當棘手的,並希望對此事的一些看法。 我想存儲分層數據(樹狀)與未知數量的層次和分支。我希望能夠隨時添加新的和刪除任何內容。
由於龐大的用戶羣,我需要能夠從層次結構中的任何節點一次查詢所有子級ID的查詢。
讓我們假設一個網站的家庭社交化和更新他們的地位,如Facebook在任何時候你可以查看家庭成員「牆」,其中還包括所有最近的狀態更新下面的人他們按照時間順序排列在層次結構中。
很顯然,一旦你擁有了這個家庭成員身份證的數組,這個家庭成員節點的子節點,獲取帖子在循環中很容易。
讓我們的例子簡單的表結構:
id | parentId | name
________________________
1 | NULL | John
2 | 1 | Peter
3 | 1 | Bob
4 | 3 | Emma
5 | 2 | Sam
6 | 4 | Gill
等....你的想法。
我需要能夠做到以上這樣的東西,除非你認爲結構需要適應。我已閱讀mySql nested set model。 這看起來很複雜,如果有些東西不能正確更新並且會把所有東西搞砸,這可能是不可靠的。
我習慣於使用php和mysql,但一直在讀cassandra和節儉。不知道這是否會更容易?
我知道它看起來很費勁,但嵌套集模型真的是你想要的。它很難解釋/描述這一點,而不是實現它,並且生成的SQL比螞蟻父子指針解決方案更簡單,性能更好 – 2010-12-14 01:34:04