【发布时间】:2015-04-11 02:45:01
【问题描述】:
我正准备重建一个数据库,该数据库有 3 个不同的表,所有表都包含相同的数据。不同之处在于每个用户 ID、用户名、电子邮件的 HashKey。我正在尝试将它们全部组合到一张表中,因为我认为冗余既不好又慢。我打算做的是将 UserId 作为 HashKey,并将 UserName 和 Email 作为二级索引。我还没有找到让 dynamoDb 在二级索引上强制唯一性的方法,因此计划使用条件写入来检查那些在写入数据库之前的唯一性。使用 SQL 这将非常容易,在 DynamoDb 中有更好的方法吗?我需要能够根据三个 UserId、UserName 和 Email 中的任何一个来查找用户。我想将此保留在一个表中,而不是使用另一个将电子邮件引用到 UserId 或将 UserName 引用到 UserId 的表。
【问题讨论】:
-
我的另一个问题是您可以使用高级 api 来执行此操作,还是需要使用低级 api?我在高级 api 文档中没有找到关于条件写入或二级索引的太多信息。
-
做更多研究,看起来条件写入可能不起作用,因为它们似乎只检查“行”并且不会检查整个表以查看是否使用了二级索引值 IE。电子邮件。
标签: unique amazon-dynamodb secondary-indexes