在Dynamodb中建模多个多对多关系

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

我试图在一个Dynamodb表中建模以下关系。

用户 - >多对多 - >游戏

用户 - >多对多 - >组

用语言:

  • 用户可以拥有许多游戏,并且多个用户可以拥有相同的游戏
  • 用户可以在许多组中,并且组由许多用户组成

我已经确定了以下访问模式:

  • 列出用户拥有的所有游戏
  • 列出用户所在的所有组
  • 列出组的所有成员
  • 列出由组成员拥有的所有游戏

前三种访问模式可以使用相邻的列表设计模式实现,如下所示:

| Partition Key | Sort Key (GSI Partition Key)  |
| ------------- | ----------------------------- |
| User-<ID>     | Game-<ID>                     |
| User-<ID>     | Group-<ID>                    |

有关如何实施上次访问模式的任何建议 - 列出所有由组成员拥有的游戏?

谢谢。

database nosql amazon-dynamodb entity-relationship data-modeling
1个回答
0
投票

您的上一个查询,列出了组成员拥有的所有游戏,已经可以,但这是一个由两部分组成的查询。

首先,获取该组中的用户列表,然后列出所有这些用户的所有游戏。您可能有一些重复项,您可以在应用程序的数据访问层中清理这些重复项。

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