我是 DynamoDB 的新手,我有一大堆问题:我的表应该是什么样子。
我已经阅读了这里的帖子:(推荐给尚未阅读的人) http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/BestPractices.html
现在我有一些困境,我认为每个开始使用 DynamoDB 的人都会遇到。
首先,我的表:学生、团队、项目
学生: 身份证,年龄...
团队: id , student-1-id, student-2-id, current-project, prev-project, last-updated-on
PROJECTS : id , team-id, 问题列表, student1answers 列表, student2answers 列表
一些评论:
- 如您所见,我不使用范围键。我需要吗?.
- 每个答案都是(问题数量、文本、插入日期)的 json
- 每个学生都可以在多个团队中。
我的困境:
- 我想获取在特定日期之后更新的特定学生的所有团队。
现在我正在使用 2 次扫描操作:一次搜索 student1,第二次搜索 student2。
**Is there a better way ?**
我考虑过添加一个新表: user-Battles: student-id, team-id 这样我就可以查询特定学生的团队,然后对所有团队进行批处理,但是最后一次更新呢?我怎样才能在 batch_get_item 中通过这个查询?
当一个项目结束时,我不再使用它。旧物品怎么办?删除 ?把它们移到另一张桌子上?
在项目表中,可以更新的属性是答案属性,所以我想将它们移到另一个表中进行表演。
如果只更新两次,我真的需要移动它们吗?(当学生 1 发送答案和学生 2 发送答案时 - 然后项目是旧的)
*如果我为答案创建一个新表,我将不必以 JSON 格式存储它们
你会如何设计桌子?请告诉我。