今後のプロジェクトの 1 つでこの概念を使用することを検討しています。
詳細: MySQL での階層データの管理。
良い経験も悪い経験も、例を挙げて教えてください。
より広くするために、さらに情報を追加しています。
複数の親を持つことができる子項目があります (例: ユーザーは都市に属し、UserDefinedRegion というグループにも属することができます)。これは、隣接リストであろうとネストされたセットであろうと、典型的な階層モデルではサポートされていません。
明確にするために、ここにユースケースを貼り付けています。
背景: 現在、システムには、都道府県 -> 郡 -> 市区町村 -> ユーザーという固定の階層があります。
Sales Manager はシステムにログインし、City または County と同じレベルの新しいグループを作成します。
Sales Manager はシステムにログインし、州と郡または郡と市の間にある新しいグループを作成します。
営業マネージャーがグループを作成すると、翌日にはダッシュボードにまとめられた必要なすべてのレポートを表示できるようになります。
ご覧のとおり、2 番目のポイントは入れ子になったセットによって簡単に実現できますが、同じ子ノードに新しい親ノードを導入する最初のポイントはそうではありません。
これまでに、stackOverflow ユーザーによって次のソリューションが提案されました。
- ネットワーク データベースがサポートするネットワーク ノード構造。
- 有向非巡回グラフ。
私は間違いなく RDBMS ソリューションを探しています。実際の階層データ モデルで複数の親ノードに遭遇した人はあまりいないようです。