一条sql实现无限极分类

3 篇文章 0 订阅

       我还没提到就有人迫不及待的想回答,递归呗,但是你们想过没有,递归的话,如果有3000个分类,有一级,二级,三级,四级的列表。你这个程序压根就跑不动,你或许会说缓存呗,但是生成缓存的速度是你无法忍受的。

递归做法表结构创建:

idint(10)分类id
namevarchar(64)8804分类名称
reidint(10)父类id

需求一:



需求2:




需求1比较简单,没啥数据量,用ajax展示打开就行,但是需求2要全部列出来这就难倒我们了,如果按照某些人的做法不断的递归查询sql,一旦分类达到3000个的时候,根本打不开的网站


织梦cms的思路是这样的:

id分类id
topid顶级id
reid父类id

没错这种思路比第一种要简化很多,只是多了个字段,但是执行效率就绝对不一样了。

根据顶级分类找到它相应的二级分类,再根据二级分类递归调出三级分类。



我的思路:


父类id

id分类id
reid父类id
height层级

height层级


首先全表sql得到列表.

通过程序 把一级分类放在一个数组中,然后把二级分类放到一个数组里。这样通过一级分类找二级分类很容易了,不用再执行sql了,只需要在二级分类中找父类id等于某分类即可获得该分类下的所有子分类,依次类推。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值