mysql 分类表设计

无限级分类表设计

作用: 可以实现在一张表中完成多层级分类,而无需分多个分类表逐一创建。

附上实例图:

理解点:

1.parent_id 的作用
2.如何查询表

parent_id

注意: 以下一级、二级分类都是在上面一张表实现的!

1.假设我有两个一级分类为:衣服 裤子
2. 请问他们的parent_id 应该为多少? 答: 应该为0,一级是顶级分类,最高层级,所以按0开始
3. 请问二级分类的parent_id 应该为多少?答:应该为一级分类的category_id
4. 那三级分类呢? 答: 应该为二级分类的category_id
5.以此类推。。。

如何查询

查询表中数据,只需要通过将分类表当作数据来源即可。

比如我想查询衣服一级分类下有多少个二级分类数据,这里假设衣服一级分类的category_id是1,那么只需如下这样查询

select * from category_table where parent_id = 1;
问: 为什么 parent_id 是等于1作为条件,就能查询出二级分类呢?
答:因为二级分类的parent_id就是一级分类的category_id,以此类推,就能查询无限级的分类了,无论条件多么复杂,查询的数据来源都是来自一张分类表
注意: 有时候会需要复制自身来当作数据源比如在left join中 比如: select * from category_table as a left join category_table as b on 加上条件。。。。

posted @ 2020-03-18 17:42  StackOcean  阅读(2001)  评论(0编辑  收藏  举报