4

次の機能を持つデータベース システムを探しています。

  1. 階層 (多次元) キー
  2. 各次元でのキーの順序

したがって、私のキーが次のようApp > User > Itemなクエリを実行できる場合、「このユーザーの次のアイテムは何ですか?」というようなクエリを実行できます。または「このアプリの次のユーザーは?」

基本的に多次元ツリーが必要です。GTMを見つけました。このような製品が他にないかどうか疑問に思っています。

4

2 に答える 2

2

あなたの要件を考えると、複数のネストされたbツリーを使用することは良い解決策だと思います。

また、キー (パス) の各セグメントに予約済みの最小トークンと最大トークンが存在するように、単一の b ツリーと巧妙なキー エンコーディングの使用を検討することもできます。

このようなキーがあれば、クエリに標準の b ツリー アクセス メソッドを使用できます。

「このユーザーの次のアイテムは何ですか」は次のようになります: find the key greater thanApp > User > Item > **MAX**

そして、「このアプリの次のユーザーは?」は次のようになります: find the key greater thanApp > User > **MAX**

2 番目のアプローチ (ネストされたツリーの代わりにキーをエンコードする) では、任意の B ツリー ベースの No-SQL ソリューションで十分です。どちらを選択するかは、プログラミング環境やその他の要件によって異なります。

于 2011-09-16T22:13:17.830 に答える
0

私は以前にこの問題に遭遇しました。parent_id親のIDを使用して子をリンクするという列を使用しました。簡単な例では、ディメンション「Item」にidtoを設定します。5したがって、parent_id5が付いているすべての行は「アイテム」の下にあります。次に、を使用しforeachてすべての親をリンクできます。

于 2011-09-16T21:48:41.807 に答える