无限级分类效率,用递归做的无限级分类,速度太慢了,有没有好有优化方案,分享一下
1个回答
展开全部
[1 ]设计表 Tree:
ID,Name,ParentID,IDHelper
1,分类1,0,1-
2,分类1.1,1,1-2-
3,分类1.2,1,1-3-
4,分类2,0,4-
5,分类2.1,4,4-5-
[2] 查询所有一级分类:
select * from tree where parentID = 0
[3]查询某一级的下一级:
select * from tree where parentID = 1
[4]查询某一级的所有下级:
select * from tree where IDHelper like ‘1-’
[5]在你做一棵树的时候,第一次不需要全部查询出来,只需要显示一级分类即可;
当用户点击某一个再加载他下面的一级(AJAX);
[6]IDHelper 怎么计算,IDHelper 总是 = 父分类的IDHelper + 当前ID + 分割符
注意每次修改删除等操作时需要更新,或者做成sql的[公式列]自动计算;
[7]注意ParentID,IDHelper不能乱套,否则会死循环;
[8]其他没什么了,应该不需要无限递归就可以完成各种操作,而且效率不是问题;
ID,Name,ParentID,IDHelper
1,分类1,0,1-
2,分类1.1,1,1-2-
3,分类1.2,1,1-3-
4,分类2,0,4-
5,分类2.1,4,4-5-
[2] 查询所有一级分类:
select * from tree where parentID = 0
[3]查询某一级的下一级:
select * from tree where parentID = 1
[4]查询某一级的所有下级:
select * from tree where IDHelper like ‘1-’
[5]在你做一棵树的时候,第一次不需要全部查询出来,只需要显示一级分类即可;
当用户点击某一个再加载他下面的一级(AJAX);
[6]IDHelper 怎么计算,IDHelper 总是 = 父分类的IDHelper + 当前ID + 分割符
注意每次修改删除等操作时需要更新,或者做成sql的[公式列]自动计算;
[7]注意ParentID,IDHelper不能乱套,否则会死循环;
[8]其他没什么了,应该不需要无限递归就可以完成各种操作,而且效率不是问题;
追问
这个不行
select * from tree where IDHelper like ‘1-’
当我ID=11
下面的IDHelper就是'11-***'
ID为1的把这个也查出来了
追答
写错了是这样的:
select * from tree where IDHelper like ‘1-%’
少了一个百分号 不好意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询