我是DynamoDB的新手,我试图围绕构建数据的最佳方式。我从他们的文档中读到,最好的架构发电机数据库通常只需要一个表。虽然我知道这不是一项规则,但在我设计架构时我会考虑这一点。
该应用程序的核心组件如下:
- 用户可以注册为教练,运动员或父母
- 教练可以创建运动员和父母可以分开的队伍
- 每个团队将有多个活动(游戏,练习,展示等)。这些活动中的每一个,参赛者都可以参加或不参加。
- 每个用户类型(教练,运动员,家长)都可以发布状态更新/照片/视频
这些实体之间的关系如下所示:
- 用户 - >团队=多对多
- 团队 - >用户=多对多
- 活动 - >用户=多对多
- 团队 - >事件=多对多
- 活动 - >团队= 1到很多
- 用户 - >事件=多对多
- 用户 - >帖子= 1到很多
使用这些功能我需要能够回答以下问题
- 按用户ID获取团队
- 按团队ID获取用户
- 按用户ID获取活动
- 按团队ID
获取活动
- 按团队ID
获取帖子
- 按用户ID获取帖子
- 按用户ID获取朋友
- 通过运动获得所有团队
- 通过运动获得所有球员
有了这些细节,有人可以告诉我,如果使用单个表格是一个不错的选择吗?如果是这样,我会使用什么分区和范围键?我还会建立一个GSI吗?