【问题标题】:Uniqueness in AWS dynamoDB items based on can be empty fields基于 AWS dynamoDB 项目的唯一性可以是空字段
【发布时间】:2016-05-14 23:14:58
【问题描述】:

我正在使用 AWS lambda(python) 和 dynamodb 向 dynamodb 添加项目。

我的项目具有类似的结构 {id,email,mobile}

基于新项目中没有电子邮件或手机号码重复的事实,我需要将项目添加到数据库。

项目可能有也可能没有电子邮件或手机。

如何做到这一点?

例如

我现在在 db 中有一个项目

{1,email@mail.com,123456789}

我可以添加

  • {2,mail@gmail.com}
  • {3,72562626262}
  • {4,jk@yahoo.com,919191919191}

但不是

  • {5,email@mail.com}
  • {6,email@mail.com,0909090990}
  • {7,123456789}

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb aws-lambda


    【解决方案1】:

    Dynamodb 只能对哈希范围表键强制唯一性(不适用于全局二级索引键)

    因此,在您的情况(以及上述场景)中,您可以避免重复电子邮件或移动设备的唯一方法是在应用程序级别,方法是制作电子邮件和移动设备全局二级哈希键(并在更新前查询项目)。

    如果您使用多线程,则在查询/更新时使用锁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      相关资源
      最近更新 更多