我正在尝试从标准RDBMS背景中学习正确的DynamoDB建模。
我要反规范化的关系数据库如下:
TwoFactorDetail
电话号码
登录
我的单表模式如下:
https://i.stack.imgur.com/8p3WY.png
如您所见,许多 TwoFactorDetail 实体可以使用相同的 PhoneNumber 。
考虑以下两种读/写模式:
您可以在模型中看到,我用一种已知的方法满足了读取模式,其中链接到 TwoFactorDetail 的 PhoneNumber 实体成为该分区中的一项。这意味着我可以使用以下条件通过一次往返数据库的操作来读取特定 TwoFactorDetail.Id 的所有详细信息: PK =“ DET#12345” AND(SK =“ DET”或SK以“ PHO”开头)
现在我的问题是如何使 PhoneNumber 元数据在各个分区之间保持一致。
即。因为电话号码可以在许多两个要素详细信息实体之间共享,并且我想在每个分区中复制此数据以简化读取,所以我不确定如何以一种聪明的方式更新与电话号码匹配的所有项目,以便我使用较少的请求数量。
答案 0 :(得分:0)
我的解决方案是按如下方式更改我的表模型:
此图片不言自明:https://i.stack.imgur.com/nAGc6.png
我对此更改感到满意,因为我只需一次往返数据库就可以获取所有 TwoFactorDetail 元数据。
另一方面,这是我决定要在 TwoFactorDetail 实体之间保持相同的 PhoneNumber 元数据一致的方法: