为了账号安全,请及时绑定邮箱和手机立即绑定

path分类实现的排序问题

mysql中 order by 是从左到右逐位比较的。后期给某个分类添加子类,根据fullpath排序就可能出现下图这种情况,这种情况应该怎么解决???

如图:

http://img1.sycdn.imooc.com//5646f674000157b802790511.jpg

正在回答

1 回答

这个问题已经解决了。

1、因为mysql排序是从左到右逐位比较。后期添加分类,在排序的时候会出现断层。解决办法是除了第1位0外,在节点id前面使用0把id填充到固定位数,或者把所有位置上的id都填充到相同位数。例如:0,0000000001,0000000002;0000000000,0000000001,0000000002。

2、这样插入分类数据path就是指fullpath(全路径),在插入的时候就要把fullpath算出来。fullpath处理方法

    方法1:插入数据,获取插入id,根据需求算出fullpath,更新path;

    方法2:自己维护id,在插入数据的时候就算出fullpath. 

3、不使用order by fullpath在mysql中进行排序,排序在后端完成或者前端(建议把数据交给前端,前端进行排序处理),这样可以提高性能。

有更好的方法,希望大家提出来,一起进步

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

path分类实现的排序问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信