关于父子同表,树形结构数据操作,构建树,向上递归,向下递归

写在前面

对于父子同表的数据,数据是级联相关的,操作方式,主要有三个方案

  • 基于所有数据,平铺,操作
  • 构建树形结构数据,操作
  • SQL(Mysql/Oracle)
    具体使用,可基于不同业务需求,选择,平铺数据更直观,树形结构是抽象数据(表面上,似乎你永远也不知道某一结点下,向下递归会有多深…)

一、基于所有数据,平铺,操作

这里主要是,集合遍历操作(可借助 Java8 Stream API),这里的问题很明显,要不断sql查询,组装数据,不推荐…

二、构建树形结构数据,操作

这里操作方式,要难很多,涉及到

  • 树的构建(基于任意节点,或全量)
  • 当前节点,向下递归,取得所有子(或最深)
  • 当前节点,向上递归,取得所有父(或最顶级父)

三、SQL实现方案

可参考,MySQL部门或菜单父子节点递归实现树查询

这里用到了自定义函数或者存储过程,或者复杂SQl的实现

发布了187 篇原创文章 · 获赞 28 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_42105629/article/details/103819251