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)通常回答非常快。 –
你可能会有超过三个级别的类别,或只有三个问题中包含? –