美文网首页
四、MySQL无限级分类表设计

四、MySQL无限级分类表设计

作者: Lord丶轩莫言弃 | 来源:发表于2019-07-30 09:54 被阅读0次

    1、概述

    • 在日常使用的网站中,商品分类一般做无限级分类,才可以满足业务需求

    2、类别表基本字段

    • type_id:分类id
    • type_name:分类名称
    • parent_id:父类id

    3、创建类别表

    CREATE TABLE tdb_goods_types(
        type_id   SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        type_name VARCHAR(20) NOT NULL,
        parent_id SMALLINT UNSIGNED NOT NULL DEFAULT 0
    );
    

    4、插入记录

    INSERT tdb_goods_types(type_name,parent_id) VALUES('家用电器',DEFAULT);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('电脑、办公',DEFAULT);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('大家电',1);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('生活电器',1);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('平板电视',3);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('空调',3);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('电风扇',4);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('饮水机',4);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('电脑整机',2);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('电脑配件',2);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('笔记本',9);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('超级本',9);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('游戏本',9);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('CPU',10);
    INSERT tdb_goods_types(type_name,parent_id) VALUES('主机',10);
    

    5、自身连接

    • 同一个数据表对其自身进行连接

    6、查找所有分类及其父类

    SELECT s.type_id,s.type_name,p.type_name FROM tdb_goods_types AS s LEFT JOIN tdb_goods_types AS  p ON s.parent_id = p.type_id;
    

    7、查找所有分类及其子类

    SELECT p.type_id,p.type_name,s.type_name FROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS  s ON s.parent_id = p.type_id;
    

    8、查找所有分类及其子类的数目

    SELECT p.type_id,p.type_name,count(s.type_name) AS children_count FROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS s ON s.parent_id = p.type_id GROUP BY p.type_name ORDER BY p.type_id;
    

    9、MySQL不具备递归查询的能力,需要通过程序实现。

    相关文章

      网友评论

          本文标题:四、MySQL无限级分类表设计

          本文链接:https://www.haomeiwen.com/subject/pjhgrctx.html