美文网首页
预排序遍历树-无限级分类

预排序遍历树-无限级分类

作者: 李小贱AA | 来源:发表于2017-10-09 20:38 被阅读0次

    表结构

    2434244-e2a84547da38994b.jpg 2434244-788d2a6ba973bd4e.png

    新增:
    通过我们刚才新增数据得到这个结构的操作,我们发现新增分两种情况。第一种如下图所示:
    1:变更所有受影响的节点,给新节点腾出空位置,所有左节点比G 左节点大的,都增加2。所有右节点比G右节点大的,也增加2.
    update product_type set pt_left=pt_left+2 where pt_left>12;
    update product_type set pt_right=pt_right+2 where pt_right>13;
    insert into product_type(pt_name,pt_fid,pt_depth,pt_left,pt_right) values('XX',pid_D,3,13,14);

    2:新增子节点,但该新增的节点左侧并有节点,列如:在E下新增Y节点,Y节点的左右值为7,8.这时候我们在修改后续节点时,应该考虑到E节点的存在。
    update product_type set pt_left=pt_left+2 where pt_left>6;
    update product_type set pt_right=pt_right+2 where pt_right>=7;
    insert into product_type(pt_name,pt_fid,pt_depth,pt_left,pt_right) values('Y',2,3,7,8);

    查询:

    B节点下所有 子节点
    SELECT * FROM product_type WHERE pt_left BETWEEN 2 AND 11 ORDER BY lft ASC;

    相关文章

      网友评论

          本文标题:预排序遍历树-无限级分类

          本文链接:https://www.haomeiwen.com/subject/kfopyxtx.html