我有一个Firebase数据库,用于记录学生练习的成绩。有一个保存所有学生详细信息的"students“对象和一个保存所有练习详细信息的”exercise“对象。现在的问题是,某个学生在某个练习中的分数应该放在哪里?
当一个学生进入系统时,它需要向所有练习显示该学生的成绩,因此将所有成绩放在“学生”对象中是有意义的。
当讲师进入系统时,它需要显示所有学生在特定练习中的成绩,因此将所有成绩放在“练习”对象中是有意义的。
到目前为止,我在两个地方都放了分数,但它导致了错误,显然这是一个设计错误,因为数据是重复的。
在SQL数据库中,我只需创建一个名为"grades“的单独表,并将"student_id”和"exercise_id“作为该表中的键。这样,无论是通过student_id还是通过exercise_id,都很容易找到所有的等级。
我如何在Firebase中做到这一点?
发布于 2019-05-22 03:17:51
我想我会将所有的studentIds和excerciseIds添加到一个成绩集合中,并且只需要他们的所有成绩,并且可能会复制学生集合+练习中所需的额外数据,就像你建议的类似sql方法。
如果不是这样,我可能会检查对子集合查询的支持,因为我相信它正在进行中?这样,每个练习都可以将学生信息作为子集合,无论哪种方式,都可以复制数据并像sql视图一样思考。
https://stackoverflow.com/questions/56239458
复制相似问题