基于AWS动态数据库项目的唯一性可以是空字段

时间:2016-05-14 07:09:15

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

我使用AWS lambda(python)和dynamodb将项目添加到dynamodb。

我的项目结构如下 {ID,电子邮件,移动}

我需要根据新项目中没有重复电子邮件或手机号码的事实向db添加项目。

项目可能有也可能没有电子邮件或移动设备。

如何实现这一目标?

例如

我现在在db

中有一个项目

{1,电子邮件@ mail.com,123456789}

我可以添加

  • {2,邮件@ gmail.com}
  • {3,72562626262}
  • {4,JK @ yahoo.com,919191919191}

但不是

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

1 个答案:

答案 0 :(得分:0)

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

所以在你的情况下(以及上面描述的场景),通过制作电子邮件和移动全局二级哈希键(以及在更新之前查询项目),只有这样才能避免电子邮件或移动设备的重复。 / p>

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