我正在尝试设计一个配置/设置管理系统,我正在考虑将其存储在键值存储中。
我有一个多部分键 - OrganizationId + TenantId + UserId + ApplicationId 而 value 是一个序列化的配置/设置对象。密钥的多个部分是分层的 - 即用户 ID 属于属于组织 ID 的租户 ID
业务要求是我必须返回用户级别(用户 ID)配置/设置对象(如果存在),否则返回租户级别(租户 ID)或返回组织级别(组织 ID)对象。组织级对象将始终存在。
我计划将组织级别对象存储为 -(OrgId - a, TenantId - 0, UserId - 0, AppId - 0) 同样,租户级别对象将存储为 - (OrgId - a, TenantId - b, UserId - 0, AppId - 0) 等等...
当我收到返回某个配置/设置对象的查询时,我得到 - OrgId(a)、TenantId(b)、UserId(c) 和 AppId(d) 作为输入。我的工作是查询键值存储以在适当的级别返回对象
我可以通过在最坏的情况下对键值存储进行 4 次调用来实现这一点 -
- A B C D
- a, b, c, 0
- a, b, 0, 0
- 一, 0, 0, 0
有什么方法可以在一次通话中实现这一目标吗?我可以维护任何其他数据结构来实现这一点?我可以用什么算法来解决这个问题?
提前致谢 !!