我正在寻找具有以下功能的数据库系统:
- 分层(多维)键
- 每个维度的键排序
因此,如果我的密钥是这样的,App > User > Item
我可以运行如下查询:“该用户的下一个项目是什么?” 或者“这个应用程序的下一个用户是什么?”
我基本上想要一个多维树。我找到了GTM,想知道是否还有其他类似的产品。
我正在寻找具有以下功能的数据库系统:
因此,如果我的密钥是这样的,App > User > Item
我可以运行如下查询:“该用户的下一个项目是什么?” 或者“这个应用程序的下一个用户是什么?”
我基本上想要一个多维树。我找到了GTM,想知道是否还有其他类似的产品。
鉴于您的要求,我会说使用多个嵌套的 b 树是一个很好的解决方案。
您可能还想考虑使用单个 b 树和一些巧妙的密钥编码,以便密钥(路径)中的每个段都有一个保留的最小令牌和最大令牌。
拥有这样的密钥将允许您对查询使用标准的 b-tree 访问方法。
“该用户的下一项是什么”将是:找到大于的键App > User > Item > **MAX**
并且,“这个应用程序的下一个用户是什么”将是:找到大于App > User > **MAX**
对于第二种方法(键编码而不是嵌套树),任何基于 b-tree 的 No-SQL 解决方案都足够了。选择哪一个取决于您的编程环境和您可能有的其他要求。
我以前遇到过这个问题;我使用了一个名为的列parent_id
,它使用父级的 id 来链接子级。在一个简单的示例中,我们将维度“Item”设置为id
。5
因此,带有 的每一行都parent_id
将5
位于“项目”之下。然后,您可以使用 aforeach
将所有父母联系起来。