次の機能を持つデータベース システムを探しています。
- 階層 (多次元) キー
- 各次元でのキーの順序
したがって、私のキーが次のようApp > User > Item
なクエリを実行できる場合、「このユーザーの次のアイテムは何ですか?」というようなクエリを実行できます。または「このアプリの次のユーザーは?」
基本的に多次元ツリーが必要です。GTMを見つけました。このような製品が他にないかどうか疑問に思っています。
次の機能を持つデータベース システムを探しています。
したがって、私のキーが次のようApp > User > Item
なクエリを実行できる場合、「このユーザーの次のアイテムは何ですか?」というようなクエリを実行できます。または「このアプリの次のユーザーは?」
基本的に多次元ツリーが必要です。GTMを見つけました。このような製品が他にないかどうか疑問に思っています。
あなたの要件を考えると、複数のネストされたbツリーを使用することは良い解決策だと思います。
また、キー (パス) の各セグメントに予約済みの最小トークンと最大トークンが存在するように、単一の b ツリーと巧妙なキー エンコーディングの使用を検討することもできます。
このようなキーがあれば、クエリに標準の b ツリー アクセス メソッドを使用できます。
「このユーザーの次のアイテムは何ですか」は次のようになります: find the key greater thanApp > User > Item > **MAX**
そして、「このアプリの次のユーザーは?」は次のようになります: find the key greater thanApp > User > **MAX**
2 番目のアプローチ (ネストされたツリーの代わりにキーをエンコードする) では、任意の B ツリー ベースの No-SQL ソリューションで十分です。どちらを選択するかは、プログラミング環境やその他の要件によって異なります。
私は以前にこの問題に遭遇しました。parent_id
親のIDを使用して子をリンクするという列を使用しました。簡単な例では、ディメンション「Item」にid
toを設定します。5
したがって、parent_id
の5
が付いているすべての行は「アイテム」の下にあります。次に、を使用しforeach
てすべての親をリンクできます。