1. 程式人生 > >JeeSite 4.x 樹形結構的表設計和用法

JeeSite 4.x 樹形結構的表設計和用法

names 們的 級別 數據 但是 The 左右 我們 用法

有些同仁對於 JeeSite 4 中的樹表設計不太了解,本應簡單的方法就可實現,卻寫了很多復雜的語句和代碼,所以有了這篇文章。

在 JeeSite 4 中的樹表設計我還是相對滿意的,這種設計比較容易理解,不會太依賴數據庫的語法,對兼容多數據庫比較好。相比網上大牛的左右值樹設計簡單了很多,並且可隨時調換父節點,並級聯更新所有子節點數據。

看下表字段說明我們發現除了父級節點外又多了很多輔助字段,這寫字段的維護可能會稍微影響我們的插入和更新性能, 但是這將極大的簡化了我們的查詢,並不限深度。廢話不多說,下面我們一同來就來看看都有哪些好處。

樹表字段說明

字段名說明
xxx_code節點編碼(xxx表示用戶自定義名稱)
xxx_name節點名稱(xxx表示用戶自定義名稱)
以下是樹表關鍵字段:
parent_code節點上級編碼
parent_codes節點所有上級編碼(快速檢索下級節點)
tree_sort當前層級排序號(decimal類型)
tree_sorts樹節點的完整排序號,10位數字組成(快速整樹排序)
tree_leaf是否是末級,是否葉子節點(0:否,1:是,char類型)
tree_level節點層次級別(從0開始,decimal類型,快速分級查詢,根據層級縮進)
tree_names節點的全名稱(用“/”分隔,快速獲取當前節點完整路徑)
以下是樹表可選字段:
status節點狀態(0:正常,1:刪除,2:停用)
create_by創建者用戶編碼
create_date數據創建時間
update_by更新者用戶編碼
update_date數據更新時間

下面以區域樹表舉例

定義實體Entity

用戶自定義的節點編碼是area_code

JeeSite 4.x 樹形結構的表設計和用法