Amazon web services AppSync$util.autoId()和DynamoDB分区和排序键设计问题
dynamoDB的for分区键和sort键是这样的:如果我想创建一个包含大量用户(例如整个世界人口)的表,那么我不能只使用唯一的分区键来表示personId,我需要同时使用分区键和sort键来表示personId 中的$util.autoId()返回128位字符串。如果我想将其用作dynamoDB表中的主键,那么我需要将其拆分为两个字符串,一个是分区键,另一个是排序键 执行此拆分的最佳方式是什么?或者,如果这不是设计的最佳方式,我应该如何设计它呢 此外,分区和排序键的限制是否也适用于辅助索引Amazon web services AppSync$util.autoId()和DynamoDB分区和排序键设计问题,amazon-web-services,amazon-dynamodb,aws-appsync,Amazon Web Services,Amazon Dynamodb,Aws Appsync,dynamoDB的for分区键和sort键是这样的:如果我想创建一个包含大量用户(例如整个世界人口)的表,那么我不能只使用唯一的分区键来表示personId,我需要同时使用分区键和sort键来表示personId 中的$util.autoId()返回128位字符串。如果我想将其用作dynamoDB表中的主键,那么我需要将其拆分为两个字符串,一个是分区键,另一个是排序键 执行此拆分的最佳方式是什么?或者,如果这不是设计的最佳方式,我应该如何设计它呢 此外,分区和排序键的限制是否也适用于辅助索引 关
关于$util.autoId(),由于它是随机生成的,如果我多次调用它,它是否有可能生成两个完全相同的id?我想我误解了你问题的前提,因为对我的大脑来说,使用AppSync的$util.autoId()返回128位UUID。UUID的意义在于它们是唯一的,所以世界上每个人绝对可以拥有一个UUID。UUID字符串肯定会符合Dynamo分区键要求的最大字符长度限制 你还问: 如果我多次调用它,它是否有可能生成两个 完全一样的身份证
这极不可能。关于分区键和排序键限制,这里的[link]()表示最大长度为2048字节。这听起来比128位UUID要小得多。啊!以十六进制表示法表示的128位UUID明显短于2048字节;它是32个字符和四个连字符。=-)