関係間の関係のモデリングが必要なプロジェクトにグラフ データベースを使用することを検討しています。たとえば、A と B の同点は、C と D の同点を条件とする場合があります。
また、ノード間の関係やその他の関係をモデル化する必要もあります。触媒関係が良い例かもしれません。エージェント X は、エージェント Y と Z の間の関係を促進します。関係には、関係を説明するプロパティが含まれている必要があります。
ノードとリレーションシップを同じタイプから継承させることで、これを実現するリレーショナル データベースを作成できます。したがって、タイプごとのデータベース構造のテーブルには、BaseType テーブルの主キーと、サブタイプ テーブルとの 1 対 1 の関係 (Node および Relationship) があります。Relationship テーブルには、BaseType テーブルへの 3 つの外部キーがあります。1 つは主キーで、他の 2 つはリレーションシップのソースとターゲットを構成します。したがって、ソースとターゲットの一方または両方を関係タイプにすることができます。
ただし、これには小さなオブジェクトの多数の結合が含まれており、グラフ DB で最適に機能するデータベースの説明に適合します。
要求に応じた図 - 試みられた解決策を含む。
リレーションシップ ノードを作成して問題を解決しようとしています。
したがって、ここで提案する解決策には、さらに多くのノードを作成することが含まれます。これでうまくいくと思いますが、不必要に複雑にしているのだろうかと思います。
最後の図 - リレーショナル データベース ソリューション。これは少しきれいに見えますが、Graph db アプローチほど柔軟ではありません。そして、おそらくそれほど効率的ではありませんか?