无限极分类查询mysql_【MySQL】-无限极分类表设计与查询

What?

举个简单的例子,我们设计购物商城之类的网站的时候一般商品都会有一级分类二级分类甚至三级分类或者再细分,如果按照传统思维我们可能会为每个级别的类别设置一张分类表然后再用外键去关联,虽然这样保证了没有冗余,但是我们完全没有必要设置这么多表,更何况商品类可以是无限细分的,我们不能因此而创建无数张表,最最重要的是这样多表连接查询时候会造成效率低下的问题,不利于性能的提升。

这个时候我们如何只设置一张类别表而且保证没有冗余呢?接下来揭开无限极分类表设计的面纱。

How?

至少包含三个字段,自身id,自身名,父级id.

先创建一张简单的表

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 01234

插入数据示例:

7b0a5752685f9fb6ee474f7db9c244cc.png

如何高效查询

秘密武器:做自身连接起别名,然后利用左右连接来查询 自身连接为何物?同一个数据表对自身进行连接。注意一定要起别名!!

1.左连接–以右表为子表

SELECT s.type_id,s.type_name

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值