假设我有一个 order
表,其中存储用户发出的订单。它具有以下架构:
id(字符串,唯一主键)
userId(字符串,创建用户的用户id
我想在userId
列上添加一个全局二级索引,但它将是非唯一的,即单个用户可能会发出多个订单,这意味着可能有多个订单相同的userId
。
通过阅读文档,我不太清楚这种情况是否可以,或者我是否需要添加范围键以使主键唯一。
我不想添加范围键,因此我可以简单地使用 userId 来获取特定用户发出的所有订单。
有什么想法吗?
最佳答案
这种情况没问题,全局二级索引可以是非唯一的。唯一的缺点(我能想到的)是,如果您有一个“ super ”用户,有多个订单(写入时),它可以指责吞吐量容量错误。
这里有一个很好的引用:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html
关于java - DynamoDB 中的全局二级索引是否需要唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37118040/