层级分类

无限极分类(思路)

今天看segmentfault看到别人的无限极分类的高效思路(顺便理理自己的思路)

  • 平时设计无限极分类如下
idparent_idcategory
10无纺面料
21无纺布
31印花布
42涤纶无纺布
查询分类或者面包屑(无纺布面料>无纺布>涤纶无纺布)
  • 将该表重新构建成左右ID
idparent_idcategoryleftIdrightId
10无纺面料119
21无纺布210
31印花布1114
42涤纶无纺布36
查询的时候就只要根据leftId和rightId和parent_id 来查找
但是插入数据库的时候都要对父级+1,冒泡+1;
  • 另外一种设计
idpathcategory
10无纺面料
20,1无纺布
30,1印花布
40,1,2涤纶无纺布
这样设计的话,就只要将path字段用,分割;然后where id(1,2)

SELECT *,concat(path,',',id) AS paths FROM table ORDER BY paths
  • 也许可以换个mongodb数据库
{
        "id": id,
        "category" : "无纺布面料",
        "path": [
            {
                "id":id,
                "category":"无纺布",
                "path":[
                    {
                        "id":id,
                        "category":"涤纶无纺布",
                        "path":[]
                    }
                ]
            },
            {
                "id":id,
                "category":"印花布",
                "path":[],
            }
        ]
    }
    由于无限级分类一般来说改动不大,只是查询;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值