【发布时间】:2019-11-11 18:07:08
【问题描述】:
在一个新的 DynamoDB 表中,我的用例已经通过以下关键架构设计实现:
- 分区键:
user_id - 排序键:
entity_id
基本上,访问模式是:
- 获取特定用户的特定帖子。
- 获取特定用户的特定评论。
- 按特定用户列出所有帖子。
- 按特定用户列出所有 cmets。
- 列出特定用户的所有实体(发布或评论)。
如果我使用更随机的 ID 作为分区键,并简单地将 GSI 用于上述访问模式,我可以获得什么好处?
- 分区键:
pseudo_random_id(这将是现实中的 UUID。请忽略,这不是插图中的 UUID)。 - GSI:
- 分区键:
user_id - 排序键:
entity_id
- 分区键:
【问题讨论】:
-
仅供参考,您的示例
pseudo_random_id值是 not UUID。术语UUID 具有非常具体的标准化含义。 UUID 是一个 128 位的值,以规范格式呈现给人类,由 4 个连字符组成的 32 个十六进制字符组成。示例:403fc3f4-9bb9-11e9-a2a3-2a2ae2dbcce4。请编辑问题的标题和正文,以明确您的意思是 UUID 还是其他内容。
标签: amazon-web-services database-design amazon-dynamodb