Skip to main content
 首页 » 编程设计

java中具有复合键的重复主键,DynamoDB

2024年11月01日9shanyou

简单的问题,我是 NoSQL 数据库的新手,所以请原谅我对这个主题缺乏了解,但我想知道如何在 DynamoDB 中使用主键和复合键的组合。请看下面的例子。我可以使用相同的主键但使用不同的组合键来查询数据库吗?我想按数据排序,以便可以按日期或地区查询,并且我还想保留包含账单 ID 和名称的 map 。任何帮助表示赞赏。

enter image description here

请您参考如下方法:

回答您的评论问题,无法通过范围键快速查询。 您只能查询哈希键来获取日期列表。 也许您应该切换它并创建日期散列,但这样您就无法查询范围。

在对 DynamoDB 进行建模时,您需要确保了解限制并相应地进行建模。

编辑以回答评论 您可以有一个表,其中 hash 为 clientId,range 为 billId。
这将帮助您查询客户的所有账单。如果您想按数据库中的类型过滤它们,您可以添加 local secondary index在“type”属性上并快速过滤它(请记住,我们仍在讨论辅助查询。第一个是 clientId)。

另请记住,一次只能使用一个索引(范围键被视为索引)