无限级分类数据的设计

要实现栏目的无限极分类,我们需要对应的数据库表结构,一般情况下,如果结构比较常用[code]
id int   自增主键 
cat_name varchar(256)   分类类别名称 
parent_id int 0 父母分类Id 
depth  smallint 1 深度,从1递增 
id_path  varchar(256) 表示从根节点到当前节点的路径的ID分割组合字符串
name_path   varchar(256) 表示从根节点到当前节点的路径的NAME分割组合字符串
status int 0  状态:0禁用,1启用 
list_order  int 0  优先级,栏目排序,同级显示的时候越靠前


在对树进行操作时,我们还是如平常一样对表执行CRUD操作,要维护这两个字段并不需要费多少力气,然而在查询时却会为我们带来极大的便利。例如要查询第3层的节点,则只需要使用"WHERE Depth = 3";又例如要查询A1节点下B3节点下C2节点下的所有子节点,则可以使用"WHERE Path LIKE 'A1/B3/C2%'";也可以用Find in set 替代like

原文地址:https://www.cnblogs.com/Alight/p/3277445.html