在dynamodb中,如果你想在主键之外的字段中强制执行唯一性(就像你有一个用户表并希望用户使用唯一的电子邮件地址而主键是用户ID是一个数字)有其他方法扫描该表以查看该电子邮件是否已被使用?
简答:不 .
DynamoDB是一个关键: Value 存储 . 它非常适合快速检索/保存项目,因为它做了一些妥协 . 这是你必须自己处理的约束 .
Nonethess,根据您的实际模型,您可能最好使用此字段 hash_key 或考虑使用 range_key
hash_key
range_key
如果无法做到这一点,我建议您对数据进行去标准化 . 你现在有类似的东西:
UserTable
hash_key : user_id
user_id
e-mail
......
要确保单一性,请使用此架构添加新表:
EmailUser
hash_key :电子邮件
要确保电子邮件是唯一的,请在之前发出 GetItem 至 EmailUser .
GetItem
这种去规范化在No-SQL数据库中很常见 .
1 回答
简答:不 .
DynamoDB是一个关键: Value 存储 . 它非常适合快速检索/保存项目,因为它做了一些妥协 . 这是你必须自己处理的约束 .
Nonethess,根据您的实际模型,您可能最好使用此字段
hash_key
或考虑使用range_key
如果无法做到这一点,我建议您对数据进行去标准化 . 你现在有类似的东西:
UserTable
hash_key
:user_id
e-mail
......
要确保单一性,请使用此架构添加新表:
EmailUser
hash_key
:电子邮件user_id
要确保电子邮件是唯一的,请在之前发出
GetItem
至 EmailUser .这种去规范化在No-SQL数据库中很常见 .