【发布时间】:2019-05-12 21:12:38
【问题描述】:
假设我们有以下三个实体:
Organization
- id
Role
- id
Member
- id
可以将角色授予组织内的成员,从而赋予该成员对该组织的某些访问控制权限。 我希望能够回答以下两个问题:
- 列出在给定组织中具有给定角色的所有成员的 ID(例如,给定角色 ID 和组织 ID 给我成员列表)。
- 列出成员在给定组织内被授予的所有角色 ID(例如,给定成员 ID 和组织 ID 给我角色列表)。
我正在尝试找到有关如何在 Bigtable 中对此建模的建议(理想情况下使用单行进行原子突变)...我也对其他技术建议持开放态度(我正在尝试在我的约束范围内进行设计)公司给了我)。
如果我们使用 Bigtable 行键org#{orgID}#role#{roleID}#member#{memberID} 对上述关系进行建模,我可以轻松回答第一个问题。但是,它不允许我轻易回答第二个问题。如果我复制数据并存储另一个行键org#{orgID}#member#{memberID}#role#{roleID},那么我可以轻松回答第二个问题,但是现在我有两行要管理,并且不能保证两者之间的原子更新,因此可能会导致一致性问题。
社区中是否有人遇到过类似的问题,如果有,您是如何解决的?
【问题讨论】:
标签: database google-cloud-platform bigtable google-cloud-bigtable