Amazon dynamodb DynamoDB键设计

Amazon dynamodb DynamoDB键设计,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我有一张带有以下键的桌子: PKey(分区密钥) SKey(排序键) 我想为一系列国家存储假日,并回答以下两个问题: 给我2020年几个月内的所有假期 给我一个特定国家2020年几个月内的所有假期 目前,PKey举行年会,SKey举行月会和日会(12-31)。我已经在SKey中添加了国家(ISO),但是我不能回答这两个问题。有没有另一种设计可以工作?我正在努力避免GSI Mark您是否考虑过使用本地二级索引(LSI)而不是GSI?没有与LSI相关的额外成本 您可以让表排序键为“County

我有一张带有以下键的桌子:

PKey(分区密钥) SKey(排序键)

我想为一系列国家存储假日,并回答以下两个问题:

  • 给我2020年几个月内的所有假期
  • 给我一个特定国家2020年几个月内的所有假期
目前,PKey举行年会,SKey举行月会和日会(12-31)。我已经在SKey中添加了国家(ISO),但是我不能回答这两个问题。有没有另一种设计可以工作?我正在努力避免GSI


Mark

您是否考虑过使用本地二级索引(LSI)而不是GSI?没有与LSI相关的额外成本

您可以让表排序键为“County”-“Month”-“Day”

然后您的第二个访问要求可以由

Query(pkey = "2020", skey between "GB-10-01" and "GB-12-31")
然后,您的LSI排序密钥将仅为“月”-“日”,可以满足您的第一个访问需求

Query(index='MYLSI', pkey = "2020", skey between "10-01" and "12-31")