我已經從SO中得到了各種解決方案來創建我的第一個MLM項目,但現在我陷入了總體下行計數(通過遞歸函數),因爲我沒有在此之前的想法,請任何人幫助我。如何爲mlm項目創建適當的遞歸函數
我的數據庫表結構如下(表名構件):
`member_id | member_name | node_left | node_right
其中成員的關係爲:
member_id (Id 101)
/\
/\
node_left(Id 102) node_right(Id 103)
/\ /\
/\ blank/\blank
(again) blank node_right (104)
......等等。以上只是一個例子
`
現在我需要計算任何成員的總下線。例如:假設上面的例子,我想知道總下線member_id 101 如何創建遞歸函數來做到這一點,以有限循環結束?
請給我任何想法..
所示的表結構(基本上,它是一個鄰接表設計)不適合用於處理SQL中的分層數據。參見[「在關係數據庫中存儲分層數據的選項?」](http://stackoverflow.com/questions/4048151/what-are-the-options-for-storing-hierarchical-data-in-a - 關係數據庫)以獲得更好的選擇。 – outis
@outis:它似乎是一個嵌套集合設計,而不是一個鄰接列表。 – Rijk
@Rijk:每個節點都將邊緣存儲到它的兩個子元素(與用於鄰接的標準模式相反,但是相鄰),而不是子樹的邊界。注意你有'(101,'...',102,103)'; 104不在範圍內,雖然它是後代。 – outis