ツリー構造が破損した際の修復
従来のモデルでは、ツリー構造カラムによる参照整合性が保証されていません。最も簡潔なテーブル設計である「隣接リストモデル」でさえ、親子関係が循環指定される不整合の可能性があります。
FF モデルもこの点では例外ではありませんが、「参照整合性の破損個所」を検索して見つけることができます。これは、他のモデルを圧倒している特徴です。
Fertitle Forest モデルにおける参照整合性の破損
FF モデルに於けるツリー構造データの破損は、次のふたつのケースに限定されます。
- QUEUE が重複したケース
- 根ノードではない親ノードが削除されて、子ノードの所属ノードがなくなるケース
上記のふたつのケースが招じた個所を、検索して取得できます。検索で特定できるなら、後は PHP や Ruby などのスクリプト言語を使って一列に並べて表示させることで、目視で破損個所を確認できます。参照整合性が破損している部分をハイライトさせるのも容易です。
TODO: 破損個所を特定するための処理は、後日まとめて記載します。
DEPTH の整合性を修復するには
FF モデルでは、 DEPTH の整合性を修復するための UPDATE 文が書けます。事前に SELECT 文を発行してノードの破損状況を取得した後、 UPDAPTE 文一回で修正できます。「隣接リストモデル」には及びませんが、「経路列挙モデル」「入れ子集合モデル」「閉包テーブルモデル」の修正に比べると、圧倒的な簡易さです。
TODO: UPDATE 文の構築方法については、後日まとめて記載します。すぐに知りたい方は、拙作のライブラリを参照して下さい。