category subcategory subcategory
jewelry body nose ring,arm ring,ear ring
men ring,ear ring
我有多个category->subcategory->subcategory
那么MySQL的表格如何?
答案 0 :(得分:1)
像这样构建你的表:
Id Category ParentId
1 Jewelry NULL
2 Body 1
3 nose ring 2
4 arm ring 2
5 ear ring 2
-
-
这称为自引用表,即ParentId
列包含NULL
或同一表的Id
列中的值。
所以每当您必须知道给定subcategories
的所有直接category
时,您只需创建一个类似的查询:
Select * from CategoryMaster where ParentId = 2;
执行此操作,您将获得子类别Body
的所有子类别。
现在,关于这个数据结构的最好的部分是你可以为任何给定的子类别提供n级子类别,并且相同的单个表格可以有3列(至少)。
答案 1 :(得分:0)
在设计分层数据的架构时,您应该考虑要求。如果您只有一个级别的类别意味着一个父级,然后是子类别,那么您存储数据的方式最好。但是,如果您具有未知级别的子类别或多个子类别,请考虑嵌套集模型。 请参阅此链接http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/