如何针对此用例对 dynamodb 进行建模?

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

所以我必须对与此类似的信息进行建模,https://www.bundesliga.com/en/bundesliga/matchday。 选择俱乐部后,应显示该俱乐部所参加的比赛。

一场比赛基本上会有两支球队参加。

{ home_team: 'A', away_team: 'B' }

假设我在 dynamodb 中使用两个这样的键进行建模,

pk: home_team 
sk: datetime
gpk1: away_team

如何查询某支球队的比赛列表? 我的团队查询可以在 pk 或 gpk1 中,我相信也不可能在 dynamodb 中跨两个键给出“OR”条件。

我不想使用过滤表达式,因为这只是在从数据库获取数据后发生在客户端。

我最好的选择是使用 pk 和 gpk1 同时执行两个查询并合并结果。 只是想知道,是否有更好的方法来建模以避免合并客户端。

amazon-dynamodb data-modeling
1个回答
0
投票

您可以选择执行两个查询,就像您在那里建模一样,或者(在写入时)将游戏两次插入到基表中,每个参与团队一个作为 PK。因此,基本上,基表将存储同一游戏的两个观点,并保留一个副本以供每个团队快速查找。

有趣的是,两种设计都使用相同的存储量和写入容量。只是使用 GSI,您可以隐式获得第二次写入,但必须连接两个查询。

您可以在读取或写入方面做一些额外的工作,以使其他工作变得简单。

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