父子同表的相關操作
- 寫在前面
- 一、基于所有資料,平鋪,操作
- 二、建構樹形結構資料,操作
- 三、SQL實作方案
- 可參考,[MySQL部門或菜單父子節點遞歸實作樹查詢](javascript:void(0))
寫在前面
對于父子同表的資料,資料是級聯相關的,操作方式,主要有三個方案
- 基于所有資料,平鋪,操作
- 建構樹形結構資料,操作
-
SQL(Mysql/Oracle)
具體使用,可基于不同業務需求,選擇,平鋪資料更直覺,樹形結構是抽象資料(表面上,似乎你永遠也不知道某一結點下,向下遞歸會有多深…)
一、基于所有資料,平鋪,操作
這裡主要是,集合周遊操作(可借助 Java8 Stream API),這裡的問題很明顯,要不斷sql查詢,組裝資料,不推薦…
二、建構樹形結構資料,操作
- 樹的建構(基于任意節點,或全量)
- 目前節點,向下遞歸,取得所有子(或最深)
- 目前節點,向上遞歸,取得所有父(或最頂級父)