非常に多様な一連の相互接続されたオブジェクトのデータモデルを開発しようとしています。アプリケーションが成熟するにつれて、サポートされるオブジェクトのタイプが大幅に増加します。新しいオブジェクト型が追加されるたびに、モデル/スキーマを変更する必要はありません。柔軟なオブジェクトの関係
単純な例として、私が人と建物のモデルから始めているとしましょう。建物には複数の所有者がいます。人は複数の建物を所有することができます。人は家に住んでオフィスで働くことができます...将来のバージョンでは車や企業が増えるかもしれません。自動車は所有者を所有することができ、企業は自動車を製造することができ、人々は企業などのために働くことができる。多くの関係は多対多であり、一部は一対多であり、少数は一対一である。
「所有者」、「雇用者」、「製造」などの概念は「建物」、「法人」、「車」オブジェクトのプロパティと考えることができますが、データモデルを再定義する必要はありません。新しいプロパティタイプをサポートします。
私の現在のアイデアは、これをグラフと同様にモデル化することです。グラフの各データは独自のノードです。ノードオブジェクトは非常に簡単になります:
- 一意の識別子
- 名前(人間の表現)
- ノードタイプ
- 関係前の例を拡張
、可能なノードタイプは次のようになり:
- 人
- カー
- 会社
- ビル
関係は次のようになります。
- ノードA
- ノードB
- 関係タイプ - 用途、所有している、持っている、され、等
私はいくつかの質問があります:
- このアプローチには何らかの欠点がありますか?
- これを説明する既存のパターンまたはモデルはありますか?
- より良いアプローチがありますか?