現在、専門企業向けにCRMのようなソリューションを社内で実装しています。保存される情報の性質、および情報の値とキーが異なるため、目的に完全に適合するドキュメントストレージデータベースを使用することにしました(この場合はMongoDBを選択しました)。
このCRMソリューションの一部として、エンティティ間の関係と関連付けを保存したいと考えています。たとえば、利害関係情報、株主、受託者などの競合を保存します。これらすべてのエンティティを最も効果的な方法でリンクすることで、「関係」の中心的なモデルが必要であると判断しました。 。すべての関係には、履歴情報(開始日と終了日)、およびさまざまなメタデータを添付する必要があります。たとえば、株主関係には、保有する株式数も含まれます。
従来のRDBMSソリューションは以前のニーズに適合していなかったため、現在の状況でそれらを使用することは現実的ではありません。私が判断しようとしているのは、私たちの場合、グラフデータベースを使用する方が適切かどうか、または実際にmongoの組み込みのリレーショナル情報を使用することが適切かどうかです。
関係情報は、システム全体で非常に頻繁に使用されます。実行したい情報クエリの例は次のとおりです。
- 「xyzlimited」の「クライアント」である企業の「主要な連絡先」の人々をすべて取得する
- 'john'が株主である会社の他のすべての'株主'を取得する
- 「abclimited」の「clients」であり、「trustusbanklimited」のクライアントであるエンティティのすべての「Keycontact」の人々を取得します
この関係の「ツリー」構造を考えると、グラフデータベース(Neo4jなど)を使用する方が適切ですか?