用户ID vs主键dynamoDB的ID



我有一个表,其中有一个"userId"列(设置为分区键)和"createdAt"列(设置为排序键),以便它们形成复合主键。

我还需要找到准确的行,以防我没有可用的用户ID,所以我创建了另一个列" ID "并使其成为全球二级索引。

在我的例子中,我是否应该使用"id"列主键,并删除&;userid &;作为分区键,或者这将删除什么"Partitioning"DynamoDB做了什么?

同样,如果我需要从表中删除一行,我是否应该发送"createdAt"字段的前端能找出确切的行吗?这有道理吗?发送"id"对我来说,能够删除行似乎更好。

您可能不希望在用户主键中放置时间戳。为什么?您需要知道用户创建的确切时间才能获取用户,这可能不是您想要的。

考虑使用USER#<user_id>的分区键和可预测的排序键,如AMETADATAUSER#<user_id>。这允许您通过用户ID获取/删除用户。

如果你有按照创建帐号的顺序获取用户的访问模式,你可以创建一个GSI,将排序键设置为createdAt属性。

最新更新