无限极分类

在实现 国家、省份、市区、县城 这样的导航的时候,使用无限极分类是最好的了。

由两种方式:

方法一、递归

  • 方便查询

    1.1、数据库设计

  • 字段: id、pid、name
  • sql: select * from table where pid=$old_id;

    1.2、通过县城id查询路径

  • 通过递归pid的方式

    1.3、查询子路径

  • 通过select * from table where pid = $id;

方法二、like

2.1、数据库设计

  • 字段:id、path、name
  • eg:id(9) , path(‘1,3’),name(‘通州’) 。代表为 fullpath为:中国-北京-通州
  • sql1:select id,path,name from table where id = 123;
  • sql2:select id,path,name from table where id in (1,3,9);

2.2、通过县城查询路径

  • 通过两次sql(sql1,sql2)查询出来。

    2.3、查询子路径

  • 通过select * from table where path like ‘1,3,%’;

感想

  • 其实可以使用字段 id、path、pid、name都使用来实现无限极分类
  • 这样需求既可以满足每次只是查询一个下级。同时也能满足快速查询全路径
  • 如果查询的时候需要判断等级的话,可以再添加一个字段level。
文章目录
  1. 1. 方法一、递归
    1. 1.0.1. 1.1、数据库设计
    2. 1.0.2. 1.2、通过县城id查询路径
    3. 1.0.3. 1.3、查询子路径
  • 2. 方法二、like
    1. 2.0.1. 2.1、数据库设计
    2. 2.0.2. 2.2、通过县城查询路径
    3. 2.0.3. 2.3、查询子路径
    4. 2.0.4. 感想
  • ,