表的多级分类

试试我的答案,如果哪里不好,请指出来,我也是初学者。

我的办法很简单,就是再类别表加一个父类型编号,也就是所有的自连接,以商品类型为例,数据表如下:
Create Table ProductType
(
  ID int identity(1,1) primary key,
  Name varchar(10) not null unique,
  --引用自身表的ID作为外键
  fatherTypeID int null foreign key references ProductType(ID)
)

这样,当你添加某个商品类型时,如果是最高级别的类型,则将fatherTypeID置空,如果存在父类型,则引用父类的ID,如食品理论上应该是父类,酒类应该是食品的一个子类,而红酒类又是酒类的一个子类。假设食品类的ID是1,酒类的ID是2,红酒类的ID是3,那么数据库中的记录应该为
ID  Name  fatherTypeID
1    食品    NULL
2    酒类    1
3    红酒    2
表结构为:  id(编号)   name(分类名)  parentID(父类编号) 简单举例如下:

id    name      parentID

1     饮料            0(为0表示第一大类)

2     水果            0

3      百事可乐     1

4      雪碧           1

5      苹果     2

6      香蕉           2

这样设计的好处是:可以无限极分类。。。。便于维护和统一管理。
原文地址:https://www.cnblogs.com/liyafei/p/8747424.html