category subcategory subcategory
jewelry body nose ring,arm ring,ear ring
men ring,ear ring
我有多個category->subcategory->subcategory
所以這將如何在MySQL中的表?我的sql多個類別 - 子類別 - 子類別
category subcategory subcategory
jewelry body nose ring,arm ring,ear ring
men ring,ear ring
我有多個category->subcategory->subcategory
所以這將如何在MySQL中的表?我的sql多個類別 - 子類別 - 子類別
結構化你的表是這樣的:
Id Category ParentId
1 Jewelry NULL
2 Body 1
3 nose ring 2
4 arm ring 2
5 ear ring 2
-
-
這就是所謂的自引用表即ParentId
列包含來自同一個表的Id
列要麼NULL
或價值。
所以每當你要知道所有給定category
直接subcategories
,你只需創建這樣一個查詢:
Select * from CategoryMaster where ParentId = 2;
這樣做,你會得到所有的子類別Body
子類別。
現在,關於這個數據結構的最好的部分是,對於任何給定的子類別和具有3列的同一單表(至少)都可以有n級子類別。
我在想這個表,但看看sanjay提供的例子,耳環有2個父母,我認爲它只能是一個分類行 – jbrtrnd
那麼,你可以有兩個耳環的入口,兩個母親的身份不一樣 –
imho第二子類別(戒指)與第一子類別(男士,身體)有1,n關係。 –
在設計分層數據的模式時,您應該考慮需求。如果你將只有一個類別的類別意味着一個父母,然後是它的子類別,那麼你存儲數據的方式是最好的。但是,如果你有未知級別的子類別或多個子類別,請考慮嵌套集模型。 請參閱此鏈接http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
請記住,這不是一個論壇,所以「幫助我儘快」和「感謝」行只會污染問題內容。正如你所看到的,[值得一個答案](http://stackoverflow.com/questions/how-to-ask)通常回答非常快。 –
你可能會有超過三個級別的類別,或只有三個問題中包含? –