Che*_*rel 18 database data-modeling nosql amazon-dynamodb
我正在尝试使用DynamoDB和NoSQL.
对于我需要建立学生与班级关系这一事实,对学生表和班级表进行建模的最佳(对吗?)方法是什么?我考虑到DynamoDB中没有第二个索引可用.
该模型需要回答以下问题:
哪个学生在特定班级?
学生参加哪些课程?
谢谢
Nie*_*sen 15
一个非常简单的建议(没有范围键)将有两个表:每个查询类型一个.这在NoSQL数据库中并不罕见.
在你的情况下,我们有:
Student与属性StudentId为(散列型)主键.然后,每个项目可能都有一个名为的属性Attends,其值是类上的ID列表.Class与属性ClassId为(散列型)主键.然后,每个项目可能都有一个名为的属性AttendedBy,其值是学生的ID列表.执行查询很简单.使用一个"参与" - 学生和班级之间的关系来更新数据库需要两个单独的写入,每个表一个.
另一种设计将具有一个Attends具有散列和范围主键的表.每条记录代表一名学生参加一个班级.哈希属性可以是类的Id,范围键可以是学生的Id.然后,关于班级和学生的补充数据将驻留在其他表格中.