我还没提到就有人迫不及待的想回答,递归呗,但是你们想过没有,递归的话,如果有3000个分类,有一级,二级,三级,四级的列表。你这个程序压根就跑不动,你或许会说缓存呗,但是生成缓存的速度是你无法忍受的。
递归做法表结构创建:
id | int(10) | 分类id |
name | varchar(64)8804 | 分类名称 |
reid | int(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等于某分类即可获得该分类下的所有子分类,依次类推。