2009-12-02 91 views
3

我目前正在CakePHP中構建一個應用程序。有一個相當廣泛的現有數據集在概念上是一棵樹,但之前並沒有存儲爲一個。我的意思是,數據中沒有定義真正的關係。在CakePHP中手動構建一棵樹

我遇到的問題是讓它與CakePHP樹行爲正常工作。因爲我必須在現有數據上設置所有的值 - 而不是Cake作爲插入元素來設置結構 - 我需要了解lft/rght值的工作方式。

所以,我想問題是:

如何進行結構數據的工作,特別是LFT/rght值?我該如何設置它以便數據合理地出來,而不一次一個地插入它們?這是一個2級樹,有部分和子部分。

感謝您的幫助

回答

17

的MPTT樹邏輯相當簡單,並且在Managing Hierarchical Data in MySQL很好的解釋。總之,每個條目都有一個左值和一個右值。每個條目的左/右值在另一個條目左右範圍內是該(後者)元素的後代。例如。 LCD節點(5/6)在其父節點電視機(2-9)的範圍內。

alt text http://dev.mysql.com/tech-resources/articles/hierarchical-data-4.png

要爲「新」樹建LFT/rght值只設置了所有的parent_ids正確並在其上運行$this->Model->recover()。蛋糕會爲你計算lft/rght值。

+0

感謝您的支持。我能夠弄清楚左/右值如何工作昨晚,但我真的希望我找到恢復方法之前,我手動設置它們... – MattBelanger 2009-12-02 14:27:46

+1

哦哇,哎! X-D – deceze 2009-12-02 14:36:21

+2

幸運的是,我*只是在我嘗試手動設置它們之前找到了這篇文章:) – 2011-09-12 18:27:07