我有一个与firebase数据库结构/ nosql数据库设计有关的问题。我的结构如下所示:
Language
-> Course
--> Lesson
----> Exercise / Vocabulary
每次我完成练习时,我都希望将已解决且未解决的声音的统计数据保存到firebase数据库中,以便在每节课时跟踪用户的优秀程度。但是,我正在努力寻找一个好的解决方案,这个解决方案不需要太多的请求,也不需要奇怪的数据库设计。
所以我想出了跟踪这样的课程统计数据的想法:
完成一课后,将每个已解决或未解决的练习推送到user_stats_lessons,如下所示:
/user_stats_lessons/{userId}/lessons/{lessonId}/stats/{solved: Int, failed: Int}
所以我在LessonView上为每节课设置了一个监听器。
ref.child("user_stats_lessons").child(user.uid).child("lessons")
因此,每当课程发生变化时,我都会在课程中进行迭代,并使用相应的课程键找到课程,以查找我正在寻找的统计数据。但我认为这不是解决这个问题的最佳方案。