DynamoDB架构适用于多对多关系

时间:2018-06-18 00:35:23

标签: database-design nosql amazon-dynamodb

我是DynamoDB的新手,我试图围绕构建数据的最佳方式。我从他们的文档中读到,最好的架构发电机数据库通常只需要一个表。虽然我知道这不是一项规则,但在我设计架构时我会考虑这一点。

该应用程序的核心组件如下:

  • 用户可以注册为教练,运动员或父母
  • 教练可以创建运动员和父母可以分开的队伍
  • 每个团队将有多个活动(游戏,练习,展示等)。这些活动中的每一个,参赛者都可以参加或不参加。
  • 每个用户类型(教练,运动员,家长)都可以发布状态更新/照片/视频

这些实体之间的关系如下所示:

  • 用户 - >团队=多对多
  • 团队 - >用户=多对多
  • 活动 - >用户=多对多
  • 团队 - >事件=多对多
  • 活动 - >团队= 1到很多
  • 用户 - >事件=多对多
  • 用户 - >帖子= 1到很多

使用这些功能我需要能够回答以下问题

  • 按用户ID获取团队
  • 按团队ID获取用户
  • 按用户ID获取活动
  • 按团队ID
  • 获取活动
  • 按团队ID
  • 获取帖子
  • 按用户ID获取帖子
  • 按用户ID获取朋友
  • 通过运动获得所有团队
  • 通过运动获得所有球员

有了这些细节,有人可以告诉我,如果使用单个表格是一个不错的选择吗?如果是这样,我会使用什么分区和范围键?我还会建立一个GSI吗?

0 个答案:

没有答案