DynamoDB 关键设计

DynamoDB Key Design

我有一个带有以下键的 table:

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

我想存储一系列国家/地区的假期,并回答以下 2 个问题:

目前 PKey 保存年份,SKey 保存月份和日期 (12-31)。我已将国​​家 (ISO) 添加到 SKey,但我无法回答这两个问题。还有其他可行的设计吗?我正在努力避免 GSI。

马克

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

您可以将 table 排序键设置为“县”-“月”-“日”

那么您的第二个访问要求可以由

满足
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")