DynamoDB密钥设计

时间:2020-10-21 07:41:35

标签: amazon-dynamodb dynamodb-queries

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

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

enter image description here

我想为多个国家/地区存储假期,并回答以下两个问题:

  • 给我2020年几个月之间的所有假期
  • 给我一个特定国家/地区在2020个月之间的所有假期

当前,PKey保留年份,而SKey保留月份和日期(12-31)。我已将国​​家(ISO)添加到SKey中,但是我不能回答两个问题。还有其他可行的设计吗?我正在尝试避免使用GSI。

标记

1 个答案:

答案 0 :(得分:1)

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

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

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

满足
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")
相关问题