多層分類的結構實作方法
The Nested Set Model
巢狀分類的實作方法,此模型可以提供的 API 可以參考下面列表:
- insertNode - 新增節點
- updateNode - 更新節點
- deleteNode - 刪除節點
- moveNode - 移動節點
- fullTree - 取得整個樹資料
- getLeafs - 取得末節點
- getPath - 取得根到節點的路徑
- getLevel - 取得節點深度
Table Structure
必要欄位:
- id - 識別證
- lft - 左子樹
- rgt - 右子樹
可選欄位:
- parent_id - 父節點
- path - 路徑
- level - 深度層級
範例 SQL
CREATE TABLE IF NOT EXISTS `nestedSet` ( |
Nested set 有個重點是,它需要一個根節點做為開始,而通常這個根節點是不會被使用到的:
INSERT INTO `nestedSet` (`id`, `lft`, `rgt`, `name`) |
Full Tree
以 rootName 為根,取得整個樹資料
SELECT node.name |
Leaf Nodes
取得末端節點
SELECT name |
Single Path
取得路徑
SELECT parent.name |