我有一个带有一些属性的DDB表。主要有
request_id
、item_id
、item_status
、created_timestamp
、user_id
等
数据详情:
一个请求可以有多个item_id。最初,所有 item_id 都具有相同的 item_status,
RECEIVED
。项目的这个 item_status
属性在多个不同的时间通过多个不同的 lambda 不断变化。 item_id
本身就是独一无二的。 request_id
和 item_status
不是唯一值。
最初发出请求时,我的 lambda 会在表中创建包含所有这些详细信息的记录。
然后还有另一个 lambda 从表中获取记录。现在问题来了。我希望 lambda 从表中获取具有特定
item_status
的所有记录。
对于我的表的结构/模式,我分别选择 request_id 和 item_id 作为分区键和排序键。但我有很多基于
item_status
的疑问。一些示例是获取 item_status 为特定值的 item_ids,获取给定 request_id 和 item_status 的 item_ids。
我想到了一个以 item_status 和 request_id 作为分区和排序键的 GSI。但这种组合并不是独一无二的。 我该如何解决这个问题?
表中还有很多其他字段无法使用。例如,邮政编码。我想不出办法让我的钥匙独一无二。
我可以根据request_id进行获取并在代码中进行过滤。但考虑到表的大小,这太困难了,而且必须在多个 lambda 中多次完成。
我想到了一个以 item_status 和 request_id 作为分区和排序键的 GSI。但这种组合并不是独一无二的。我该如何解决这个问题?
GSI 属性不需要是唯一的。