DynamoDB:UUID vs组合自然ID +时间戳

时间:2016-12-05 21:35:57

标签: amazon-dynamodb

假设一个处理用户的模型。用户存储在名为Users的表中。每个用户都由一些自然标识符(分区键)唯一标识。每个用户可能在Reports表中存储零个或多个报告。

我可以想出两种设计Reports表的方法:

  1. 由UUID
  2. 组成的分区键
  3. 由用户自然标识符组成的分区键,以及由创建报告时的时间戳组成的排序键
  4. 使用毫秒级别的时间戳精度,可以安全地假设在同一毫秒内可以为给定用户生成不超过一个报告(第二个精度也应该是安全的)。

    推荐的方法是什么?

1 个答案:

答案 0 :(得分:1)

这取决于每个用户的报告分布。如果用户通常每个报告很少(例如每个<100)或者所有用户的报告数量几乎相同,那么您可以使用用户ID和时间戳。

但是,如果您希望某些用户拥有更多报告,那么您应该选择使用GSI的UUID来按用户ID查找记录。