2

私は、ユーザーがアイテムを購入できるショップを追跡するプロジェクトに着手しました。データベースとして Neo4j を使用することにしました。

これは私が念頭に置いているデータベースの一部です。各ショップにはノードがあり、これらの各ノードには、そのストアで入手可能なアイテムを格納する子ノードがあります。

次のシナリオを考えてみましょう: 特定のユーザー (すべてのアイテムを購入するために常に特定のショップに行く) が、購入したいアイテムのすべて (または最大数) を入手できる別のショップを知りたがっています。

問題は、すべてのショップとそのすべてのアイテムを徹底的に検索し、その後でマッチングを行うと、多くのスペースと時間がかかることです。この問題を最小限のスペース/時間コストで解決するのに役立つ手順/アルゴリズムはありますか?

PS: 他の多くのデータベースの問題を非常に効率的に解決するため、Neo4j のみを使い続けたいと思います。

4

1 に答える 1

3

あなたのユースケースは、実際にはグラフデータベースに最適です。アイテムをプライマリ ノードとして実装し、ストアに接続することをお勧めできますか?

Indexing Serviceを使用してストア ノードにインデックスを付けます。これにより、ストアをすばやく検索でき、特定のアイテムを 1 回トラバーサルするだけでアクセスできます。アイテムの他のすべてのストアを取得することも、その時点でエッジ トラバーサルになります。

お役に立てれば。

于 2011-06-10T16:41:37.573 に答える