首页 文章

有没有办法对dynamodb中主键以外的属性(字段)强制执行唯一约束

提问于
浏览
32

在dynamodb中,如果你想在主键之外的字段中强制执行唯一性(就像你有一个用户表并希望用户使用唯一的电子邮件地址而主键是用户ID是一个数字)有其他方法扫描该表以查看该电子邮件是否已被使用?

1 回答

  • 29

    简答:不 .

    DynamoDB是一个关键: Value 存储 . 它非常适合快速检索/保存项目,因为它做了一些妥协 . 这是你必须自己处理的约束 .

    Nonethess,根据您的实际模型,您可能最好使用此字段 hash_key 或考虑使用 range_key

    如果无法做到这一点,我建议您对数据进行去标准化 . 你现在有类似的东西:

    UserTable

    • hash_keyuser_id

    • e-mail

    • ......

    要确保单一性,请使用此架构添加新表:

    EmailUser

    • hash_key :电子邮件

    • user_id

    要确保电子邮件是唯一的,请在之前发出 GetItemEmailUser .

    这种去规范化在No-SQL数据库中很常见 .

相关问题