2011-02-27 117 views
2

幾個小時前我問過一個問題 - 之後決定更改我的sql結構。類別和子類

我有2個表:

categories (id,title,parent_id) 
articles (id,title,content,parent_id) 

每篇文章只能有1個類別,
每個類別可以具有1個父類別


一個例子:

article (id = 1) has : parent_id = 3 
category (id = 3,'root') has: parent_id = 2 
category (id = 2,'sub') has: parent_id = 1 
category (id = 1,'subsub') has: parent_id = 0 

我想要生成麪包屑 - article (id=1)
這將顯示爲:Root->sub->subsub

完成此操作的有效方法是什麼?

謝謝!

+1

可能重複的(http://stackoverflow.com/questions/5132880/categories-and-subcategories) – 2011-02-27 11:19:30

+1

可能的重複?這是同一個人發佈的完全相同的東西。 ;) – Vache 2011-02-27 11:20:27

+1

@domsterr是啊:)這只是系統發佈的標準消息,當你選擇一個愚蠢的。 – 2011-02-27 11:25:05

回答

6
  1. 加載文章時,遞歸閱讀所有類別並顯示麪包屑。

  2. 如果你需要得到所有家長每腳本超過一次(例如當加載50篇文章,需要家長爲每個),使用嵌套集模型,在Managing Hierarchical Data in MySQL解釋。

0

你可以創建函數,然後在函數中調用你的函數!

例如

function find(id){ 
    list_site = array(); 
    if whatsparent(id){ 
     list_site[] = whatsparent(id)["name"]; 
     find(whatsparent(id)["id"]); 
    } 
} 

function whatsparent(x){ 
    ... 
    return parent #array of parent detail 
} 

對不起,如果我有錯在PHP ...我Python開發:[類別和子類別] d