2012-09-12 44 views
0

我最近問了一個關於分層網站設計的合適數據結構的問題。看着對方,我將如何實現以下目標:用重複的節點結構來表示分層數據

家長
      - 讓
            - 型號1
                  - 兒童1
                  - 兒童2
            - 模型1
                  - 兒童1
                  - 兒童2
            - 模型1
                  - 兒童1
                  - 兒童2

對於每個型號,子1 + 2都是相同的。我可以使用父/子節點和遞歸表示分層數據(顯然不是最好的)。我需要爲每個模型創建一個多對多的關聯到重複的列表或其他東西嗎?

謝謝!

+0

在哪裏做你的問題不同於你以前的[問題](http://stackoverflow.com/quest離子/ 12394934 /)? – dbf

+0

以前的答案顯示瞭如何表示OOP結構。在這裏,我想知道將數據存儲在mysql表中的最佳方法,我...我認爲...多個多對多關聯。 – maddockst

回答

0

創建一個具有價值,類型節點類和父

類型可以是「做」,「模式」,「孩子」或父母...... 和值可以作爲琴絃固定架,你仍然可以添加任何類型的孩子,導致在父母和類型旁邊節點類此

[node type=parent] 
    [node type=make value="make1"] 
     [node type=model value="model1"] 
      [node type=child value="child1"] 
       [node type="date-created"] 
       [node type="some-field"] 
      [node type=child value="child2"] 
       [node type="date-created"] 
       [node type="some-field"] 

的唯一領域孩子應該是場應該是存在於所有節點

+1

這基本上是我要做的。我可以表示數據庫表中的不同葉,引用類型並使用工廠模式來創建路徑結構。選定的數組可以被序列化並被緩存並重新使用,而無需每次加載大量的遞歸函數調用。爲了處理重複的節點,我將一個唯一的節點列表存儲在一個分支表中,並使用一個關聯表進行自我連接,以允許創建一個與每個模型相關聯的創建日期。然後,我可以使用關聯表中的id字段來存儲針對唯一節點的任何數據。 – maddockst