天天看點

關于父子同表,樹形結構資料操作,建構樹,向上遞歸,向下遞歸

父子同表的相關操作

  • ​​寫在前面​​
  • ​​一、基于所有資料,平鋪,操作​​
  • ​​二、建構樹形結構資料,操作​​
  • ​​三、SQL實作方案​​
  • ​​可參考,[MySQL部門或菜單父子節點遞歸實作樹查詢](javascript:void(0))​​

寫在前面

對于父子同表的資料,資料是級聯相關的,操作方式,主要有三個方案

  • 基于所有資料,平鋪,操作
  • 建構樹形結構資料,操作
  • SQL(Mysql/Oracle)

    具體使用,可基于不同業務需求,選擇,平鋪資料更直覺,樹形結構是抽象資料(表面上,似乎你永遠也不知道某一結點下,向下遞歸會有多深…)

一、基于所有資料,平鋪,操作

這裡主要是,集合周遊操作(可借助 Java8 Stream API),這裡的問題很明顯,要不斷sql查詢,組裝資料,不推薦…

二、建構樹形結構資料,操作

  • 樹的建構(基于任意節點,或全量)
  • 目前節點,向下遞歸,取得所有子(或最深)
  • 目前節點,向上遞歸,取得所有父(或最頂級父)

三、SQL實作方案

可參考,​​MySQL部門或菜單父子節點遞歸實作樹查詢​​