业务背景:
公司会员可以发展分销团队,两级分销内可以拥有一些业务规划的羊毛。
新需求:
会员在入职公司员工后,需要解绑团队关系。
坑:
团队关系是递归插入的,最末端节点依然与根节点有数据层面的联系
解觉方案:
接口递归删除解除树状关系
代码片段:
DELETE cc
FROM
tree cc,
(SELECT
c.memberKey,
c.parentKey,
c.`level`
FROM tree c
INNER JOIN
tree c1
ON c.memberKey = c1.memberKey
WHERE
c1.parentKey = #{memberKey}
AND c1.`level` = #{level}
AND c.`level` > #{level} ) ccc
WHERE
cc.memberKey = ccc.memberKey
AND cc.parentKey = ccc.parentKey
AND cc.`level` = ccc.`level` ;
以上是对历史数据的处理,递归在代码中循环,主要实现业务,sql本身还存在优化空间,欢迎大佬点评