具有 Date、Origin 和 OriginId 之间的访问模式

问题描述 投票:0回答:1

我得到了下表,我用一组减少的属性进行了快速模拟

dummy table

我现在必须在没有 GSI 的情况下解决这两种访问模式,因为我需要表中的当前真实数据。 GSI 需要一些时间来反映表中的当前值。

我的第一个访问模式是获取特定日期范围内的所有约会

我的第二个访问模式是按来源和 originId 获取所有约会

我无法使用 GSI,因为我需要通过发言者 ID 检测约会的冲突。

我使用 electro-db 作为 ORM,这就是为什么 sk 中有 $...它是集合名称。这意味着我无法像 2024-02-02T08:00:00.000Z 那样将其存储在 SK 中。

我可以进行查询并获取演讲者的所有预约,然后过滤预约。我认为这不是一个很好的解决方案,因为这意味着我会加载多年来的约会,即使它们不需要检测是否发生冲突。

对于我想要按 origin 和 originId 加载所有约会的访问模式,查询特定项目集的所有约会对我来说似乎不太正确(我可以使用 batchGetItem 或 getItem 循环来解决这个问题) .

我的问题是冲突的访问模式,我需要加载一定范围内的所有约会。

有什么提示我可以解决这个问题吗?

amazon-dynamodb dynamodb-queries amazon-dynamodb-index
1个回答
0
投票

我可以使用batchGet 结合退避算法通过originId 获取约会的所有项目。 由于 dynamodb 使用字典顺序,因此仅使用复合键开始作为开始范围和结束范围,将复合开始键增加 1 天。 我仍然不确定这是否是最好的方法。也许有人有更好的答案

© www.soinside.com 2019 - 2024. All rights reserved.