Algorithm 分层多部分键值存储
我正在尝试设计一个配置/设置管理系统,我正在考虑将其存储在键值存储中 我有一个由多部分组成的键-OrganizationId+TenantId+UserId+ApplicationId,而值是一个序列化的配置/设置对象。密钥的多个部分是分层的,即用户id属于属于组织id的租户id 业务需求是这样的,我必须返回用户级别(用户id)配置/设置对象(如果存在),或者返回租户级别(租户id)或者返回组织级别(组织id)对象。组织级对象将始终存在 我计划将带有键的组织级对象存储为-(OrgId-a,TenantId-0,UserId-0,AppId-0) 类似地,租户级别的对象将存储为-(OrgId-a、TENATID-b、UserId-0、AppId-0)等等 当我得到一个返回某个配置/设置对象的查询时,我得到-OrgId(a)、TENTATID(b)、UserId(c)和AppId(d)作为输入。我的工作是查询键值存储,以返回适当级别的对象 在最坏的情况下,我可以通过对键值存储进行4次调用来实现这一点-Algorithm 分层多部分键值存储,algorithm,data-structures,tree,b-tree,Algorithm,Data Structures,Tree,B Tree,我正在尝试设计一个配置/设置管理系统,我正在考虑将其存储在键值存储中 我有一个由多部分组成的键-OrganizationId+TenantId+UserId+ApplicationId,而值是一个序列化的配置/设置对象。密钥的多个部分是分层的,即用户id属于属于组织id的租户id 业务需求是这样的,我必须返回用户级别(用户id)配置/设置对象(如果存在),或者返回租户级别(租户id)或者返回组织级别(组织id)对象。组织级对象将始终存在 我计划将带有键的组织级对象存储为-(OrgId-a,Ten
提前谢谢 以下是您的两个示例设置
(a,0,0,0) => 1
(a,b,0,0) => 2
现在假设我按照字典顺序检查所有可能的组合,看看我得到了什么
(a,0,0,0) => 1
(a,0,0,a) => 1
....
(a,b,0,0) => 2
(a,b,0,a) => 2
...
(a,c,0,0) => 1
我只存储事物变化的点
(a,0,0,0) => 1
(a,b,0,0) => 2
(a,c,0,0) => 1
我没有将原始数据扩展超过两倍,我可以通过使用返回最大位置的单个查询来计算任何位置的设置