AppSync $util.autoId() 和 DynamoDB 分区和排序键设计问题

AppSync $util.autoId() and DynamoDB Partition and Sort Keys Design Questions

dynamoDB 的分区键和排序键的 limits 是这样的,如果我想创建一个有很多用户(例如全世界人口)的 table,那么我不能只使用唯一的分区键来表示 personId,我需要同时使用分区键和排序键来表示 personId。

$util.autoId() in AppSync returns 一个 128 位字符串。如果我想用它作为dynamoDB table中的主键,那么我需要将它拆分成两个String,一个是partition key,另一个是sort key。

执行此拆分的最佳方法是什么?或者,如果这不是接近设计的最佳方式,我应该如何设计它?

此外,分区键和排序键的限制是否也适用于二级索引?

关于$util.autoId(),因为它是随机生成的,如果我多次调用它,是否有可能生成两个完全相同的id?

我想我误解了你问题的前提,因为在我看来,使用 AppSync 的 $util.autoId() 会给你一个 128 位的 UUID。 UUID 的要点在于它们是唯一的,因此世界上每个人绝对可以拥有一个 UUID。而且 UUID 字符串肯定会符合 Dynamo 分区键要求的最大字符长度限制。

您还问了:

if I call it many times, is there a chance that it will generate two id's that are exactly the same?

极不可能。