Amazon dynamodb DynamoDB:搜索哈希键或范围键

Amazon dynamodb DynamoDB:搜索哈希键或范围键,amazon-dynamodb,Amazon Dynamodb,我对DynamoDB相当陌生。我有一个要求,我需要设计一个表来共享手机上的代码。代码详细信息将存储为属性。例如: “A”与“1234567890”共享了一个代码 “A”与“1234567891”共享了一个代码 “B”与“1234567890”共享了一个代码 “B”与“1234567891”共享了一个代码 “A”和“B”是用户,“1234567890”和“1234567891”是收件人。如果我将UserId散列键和RecipientNumber作为范围键,那么我可以找到与用户共享代码的收件人。我的

我对DynamoDB相当陌生。我有一个要求,我需要设计一个表来共享手机上的代码。代码详细信息将存储为属性。例如:

“A”与“1234567890”共享了一个代码 “A”与“1234567891”共享了一个代码 “B”与“1234567890”共享了一个代码 “B”与“1234567891”共享了一个代码 “A”和“B”是用户,“1234567890”和“1234567891”是收件人。如果我将UserId散列键和RecipientNumber作为范围键,那么我可以找到与用户共享代码的收件人。我的要求是双向查询: 1.收件人列表,用户在查询中与之共享代码使用userId 2.与收件人共享代码的所有用户与收件人共享的代码列表


设计表格的正确方法应该是什么?

这就是DynamoDB的用途。它们允许您创建额外的数据投影,其中收件人可以是散列键。

您需要将表定义为:

用户-字符串-分区键

收件人-字符串-范围键

并添加以下全局二级索引:

收件人-字符串-GSI分区键

用户-字符串-GSI范围键

常规分区键将允许您查找用户的所有收件人,而GSI将允许您按收件人查找所有用户

另外,您可以在本文中了解更多关于DynamoDB设计模式的信息,特别是关于双向查询的信息