Más contenido relacionado
La actualidad más candente (20)
Más de ke-m kamekoopa (15)
SQLアンチパターン - ナイーブツリー
- 31. 解決策 : 経路列挙モデル
id path
comment
1
1/
たけのこ派駆逐したい
2
1/2
きのこ派怖いわー
3
1/3
>>1 同意
4
1/2/4
>>2 たけのこ汚い
たけのこ駆逐したい
きのこ派怖いわー
>>2 たけのこ汚い
>>1 同意
- 32. 解決策 : 経路列挙モデル
メリット
サブツリーの一括取得ができる
likeを用いたパターンマッチ
path
like ‘1/2/%’
ノードの追加は親ノードのpathにidを連結した
path文字列で追加する
葉ノードの削除はdeleteするだけ
デメリット
>突然のジェイウォーク!<
長さ制限とか参照整合性とか同様の脆弱性
非葉ノードの削除、サブツリーの昇格とか移動とか
は子のpathを全て更新しないといけないので隣接
ツリーよりだるい
- 33. 解決策 : 経路列挙モデル
id path
comment
1
1/
たけのこ派駆逐したい
2
1/2
きのこ派怖いわー
3
1/3
>>1 同意
4
1/2/4
2に子を追加
>>2 たけのこ汚い
たけのこ駆逐したい
きのこ派怖いわー
>>2 たけのこ汚い
>>1 同意
- 34. 解決策 : 経路列挙モデル
id path
comment
1
1/
たけのこ派駆逐したい
2
1/2
きのこ派怖いわー
3
1/3
>>1 同意
4
1/2/4
>>2 たけのこ汚い
5
1/2/5
きのこfudやめろ
たけのこ駆逐したい
きのこ派怖いわー
>>2 たけのこ汚い
>>1 同意
きのこfudやめろ
- 35. 解決策 : 経路列挙モデル
id path
comment
1
1/
たけのこ派駆逐したい
2
1/2
きのこ派怖いわー
3
1/3
>>1 同意
4
1/2/4
>>2 たけのこ汚い
5
1/2/5
path like ‘1/2%’で
サブツリーを選択できる。
きのこfudやめろ
たけのこ駆逐したい
きのこ派怖いわー
>>2 たけのこ汚い
>>1 同意
きのこfudやめろ
- 37. 解決策 : 経路列挙モデル
Left? Right?
メリット
Left : その子ノードの持つどのLR値よりも小さい値
Right: その子ノードの持つどのLR値よりも大きな値
深さ優先探索で求まる
子孫、先祖ノードの一括取得ができる
ノードを削除すると自動的に子ノードが親ノードの子へ
昇格する
デメリット
ノードの追加や更新(移動)が複雑過ぎる
LR値の再計算が必要
隣接リストでは簡単な直近の子の取得がだるい