4

我正在寻找具有以下功能的数据库系统:

  1. 分层(多维)键
  2. 每个维度的键排序

因此,如果我的密钥是这样的,App > User > Item我可以运行如下查询:“该用户的下一个项目是什么?” 或者“这个应用程序的下一个用户是什么?”

我基本上想要一个多维树。我找到了GTM,想知道是否还有其他类似的产品。

4

2 回答 2

2

鉴于您的要求,我会说使用多个嵌套的 b 树是一个很好的解决方案。

您可能还想考虑使用单个 b 树和一些巧妙的密钥编码,以便密钥(路径)中的每个段都有一个保留的最小令牌和最大令牌。

拥有这样的密钥将允许您对查询使用标准的 b-tree 访问方法。

“该用户的下一项是什么”将是:找到大于的键App > User > Item > **MAX**

并且,“这个应用程序的下一个用户是什么”将是:找到大于App > User > **MAX**

对于第二种方法(键编码而不是嵌套树),任何基于 b-tree 的 No-SQL 解决方案都足够了。选择哪一个取决于您的编程环境和您可能有的其他要求。

于 2011-09-16T22:13:17.830 回答
0

我以前遇到过这个问题;我使用了一个名为的列parent_id,它使用父级的 id 来链接子级。在一个简单的示例中,我们将维度“Item”设置为id5因此,带有 的每一行都parent_id5位于“项目”之下。然后,您可以使用 aforeach将所有父母联系起来。

于 2011-09-16T21:48:41.807 回答