我的sql multiple category-subcategory-subcategory

时间:2013-06-13 07:54:29

标签: php mysql database-design

category subcategory subcategory
jewelry   body       nose ring,arm ring,ear ring 
          men        ring,ear ring

我有多个category->subcategory->subcategory那么MySQL的表格如何?

2 个答案:

答案 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/