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

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

4

2 回答 2

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 列(至少)的同一个表就可以了。

于 2013-06-13T07:58:16.637 回答
0

在为分层数据设计架构时,您应该考虑需求。如果您将只有一个级别的类别意味着一个父类别,然后是它的子类别,那么您存储数据的方式是最好的。但是,如果您有未知级别的子类别或多个子类别,请考虑嵌套集模型。请参阅此链接 http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

于 2015-04-03T08:43:44.747 回答