2010-08-15 32 views
6

我需要能夠存儲這樣的事情: Structure http://i33.tinypic.com/f4dwea.jpg如何在MySQL中表示樹和它們的內容?

,其中綠色的是一個template型,灰色的是field container型,白色是field。 (也就是說,一個字段有一個標籤和一些文本,爲簡單起見,這兩個中間文本;一個字段容器可以存儲其他字段容器或文本,而一個模板是一個頂級字段。)

現在,讓我們說我希望允許用戶創建任意數量的這些結構,但它不可能超過10個。而且,當然,我們需要能夠將數據鏈接到它。

這是所有能在一個數據庫中存儲的關聯數組,看起來對上述類似,在僞代碼:

my_template = { 
    page_info => { description => 'hello!!!' }, 
    id => 0, 
    content => { background_url => '12121.jpg', text => ... 
} 

有一個簡單的方法來使用該模板的字段添加到所有數據當模板發生變化時(比如說,我們在page_info中添加一個keywords)會是一大優勢。

我無法弄清楚這一點,非常感謝!

+0

可能重複的[MySQL表結構問題。](http://stackoverflow.com/questions/3486109/mysql-table-structure-question) – 2010-08-15 22:04:42

+0

@OMG小馬,不,因爲這不包括如何存儲關於他們的信息,只是結構。 – 2010-08-15 22:06:26

+0

@AaronYodaiken,你解決了這個問題嗎?怎麼樣?對於我來說,構建表樹結構總是很容易,但是現在我有一個特定的和類似的問題。我想在數據庫表中保存一些可以從MVC模式定義爲View對象的結構。例如: t_view('id','path_to_file'),t_vars('id','var','view_id'); - 這些表格正在用變量定義單個視圖塊。我需要基於一些View生成多維模板,每個變量也可以查看每個變量...等等。一個模板可以通過重新定義一些變量值來擴展另一個模板。 – LINKeRxUA 2015-02-03 15:39:55

回答

6

在MySQL中有幾種不同的方式來存儲heirarchical數據結構(樹)。例如,您可以選擇:

  • 鄰接表
  • 嵌套集合
  • 路徑枚舉
  • 關閉表

見比爾Karwin的presentation對每個利弊的更多細節。

+0

感謝您的這些。我不知道比爾卡爾文,他的演講中有一些寶石。 – chryss 2010-08-16 13:29:13

相關問題