階層構造をデータベースに落とし込む際に範囲検索が簡単な
[入れ子集合モデル]を採用しようと思っています。
木構造(親node一つのみ)なら
[入れ子集合モデル]に落とし込むことで検索の高速化を計れると思います。
ですが
セミラティス構造(親nodeを複数持てる)の場合
[入れ子集合モデル]に落とし込むと複数の親を持つnodeを複製する必要が
でてきます。結果、システムが複雑になりパフォーマンスが落ちてしまいます。
どなたか複製せずに、セミラティス構造のnode検索を高速化するアルゴリズム、
アイディアをご存知の方がいらっしゃいましたらご教授ください。
特に、[入れ子集合モデル]である必要はございません。
追記:[条件]複数の親を持てるのは葉nodeのみ
追記:使用しているデータベース:MySQL
追記:検索=親を指定するとその子孫たる葉nodeすべて取得
追記:nodeに対する操作
親を指定しnode追加➡️必須
既存のnodeを削除➡️必須
既存のnode間にnodeを追加➡️必須
既存のnode間の親子関係を削除➡️必要なし
既存のnode間に親子関係を追加➡️必要なし
[問題のところ]
親を複数指定しnodeを追加➡️追加したnodeは葉nodeで複数の親をもつ葉nodeにnodeは追加できません。
