木と階層構造のデータ
SQLで木と階層構造のデータを扱う――入れ子集合モデル
http://www.geocities.jp/mickindex/database/db_tree_ns.html
木構造のノードを円と見なし、階層関係を円の包含関係として捉えなおす。
自分としては円というよりはS式という感じ。まあどっちでも同じだけど。
例題の木構造
足立 ┣猪狩 ┗上田 ┣江崎 ┃┗木島 ┣大神 ┗加藤
ここで各人を“(本人 部下 部下 …)”のリストで表すことにする。
なお、部下がいない場合でも“(本人)”となって括弧はあることに注意。
出来た全体のS式の各括弧に順に番号をつける。
(足立 (猪狩) (上田 (江崎 (木島) ) (大神) (加藤) ) ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14
これをテーブルにすればできあがり。
emp | lft | rgt |
---|---|---|
足立 | 1 | 14 |
猪狩 | 2 | 3 |
上田 | 4 | 13 |
江崎 | 5 | 8 |
木島 | 6 | 7 |
大神 | 9 | 10 |
加藤 | 11 | 12 |
S式とXMLが違うだけで、結局同じ事がここに書いてあった。
http://www.geocities.jp/mickindex/database/db_tree_ns.html#LocalLink-xml_to_set