分层,有序,键值存储?

时间:2011-09-16 21:43:40

标签: database nosql non-relational-database

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

  1. 分层(多维)键
  2. 每个维度的密钥排序
  3. 因此,如果我的密钥与App > User > Item类似,我可以运行如下查询:“此用户的下一个项目是什么?”或者“此应用程序的下一个用户是什么?”

    我基本上想要一个多维树。我发现GTM,我想知道是否还有其他此类产品。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

的密钥

和“此应用的下一个用户是什么”将是:找到大于App > User > **MAX**的密钥

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

答案 1 :(得分:0)

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