2012-03-17 62 views
1

數組我有一個下面的MySQL表值的大量(3000+):創建具有無限的深度

[id] [parent_id] [string] 

,並希望將其打印出來作爲一個嵌套的樹狀結構(如嵌套ul秒)。請注意它有無限的深度。

我嘗試了這個SO answer嵌套函數,但它真的很慢。我的其他方法失敗了,沒有遵守無限的深度。

+0

而你的問題是......? – j08691 2012-03-17 15:17:58

+1

3000條記錄是一個相當易於管理的amout,絕對有** **深度。遞歸函數在這裏可能會很慢,但是走過你的'樹'的好方法。只有3000條記錄,它不會很慢。您的實施可能存在問題。 - 你想如何構建與嵌套元素相同的記錄? 'parent_id'是節點嗎?不確定你在這裏想要什麼...... - 這裏的具體問題或問題是什麼?這有點含糊。 – Smamatti 2012-03-17 15:20:53

+0

你想打印出無限深度的嵌套樹嗎? :)你的意思是「無限期」? – 2012-03-17 15:32:39

回答

3

如果您想要無限深度,請勿使用鄰接列表模型。您將繼續在此發佈問題,解決您將面臨的各種頭痛問題。

改爲使用嵌套集模型。

+2

「如果你想要無限的深度,不要使用鄰接表模型。」 - 不對。這裏的問題是他需要抓取整棵樹,並且可能不想在mysql之外重建樹。 – 2012-03-17 15:36:16

+0

嵌套集模型解決了這個問題。打印整棵樹要容易得多:您可以按照打印友好的順序輕鬆獲取所有節點。嘗試使用鄰接列表模型來做到這一點。 – greg0ire 2012-03-17 15:39:26

+0

這正是我所說的......以間接的方式。 – 2012-03-17 16:09:49