SQL 樹狀結構

keywords:

  • 樹狀結構
  • Recursive 遞迴查詢
  • Nested sets model 巢狀資料表
  • Nested sets pattern 巢狀集合模型
傳統做法
  • column: id, parent_id
    • id unique
  • 缺點:
    • 查詢效能差
    • 若 id 非唯一,在網上層查,有可能會走錯路徑,必須記錄最根層節點
  • 好理解
巢狀
  • column: id, lft, rgt, level
  • 缺點:
    • 新增/更新效能差

行為
  • 撈取某個節點下一層
    • select where parent_id=節點
  • 撈取某個節點下面整棵樹
    • select id where parent_id in ( select id where parent_id=節點)
  • 撈取某個節點的上面 N 層的父節點
    • select parent_id where id = (select parent_id where id=aaa)
  • 撈取麵包屑 (某個節點上面每一層節點名稱) 



參考文獻

用 Nested Set Model 建立巢狀資料表
你還在用遞迴產生樹狀結構嗎
SQL 樹狀結構 SQL 樹狀結構 Reviewed by Wild on 6/02/2016 08:15:00 下午 Rating: 5

沒有留言:

沒有Google帳號也可發表意見唷!

技術提供:Blogger.