我有一个使用 Firestore 作为数据库的 Web 应用程序。它帮助教师管理班级、学生和课程。当老师登录应用程序时,他们可以选择他们负责的课程之一。选择班级后,他们可以从该班级中选择一名学生。一旦选择了学生,老师就可以看到该学生在一天或一个月内参加的课程列表。
当前数据库结构 我有一些收藏:
大学 id:字符串名称:字符串
Class id:字符串 classId:字符串 名称:字符串
学生 id:字符串 classId:字符串 名称:字符串
Lesson(作为Class的子集合)id:字符串classId:字符串studentId:字符串executedOn:number
但是我遇到了一个问题,学生可以在班级之间移动,从而很难查询他们参加的课程。
我决定通过将子集合“Lesson”移动到学生子集合或单独的集合来重组我的数据库。
我认为随着应用程序的扩展,将子集合“Lesson”移动到单独的集合将是更好的选择,但我想知道这种方法是否有任何潜在的缺点。请给我建议吗?
将 Lesson 制作为顶级集合是完全可以的,这就是我在这种情况下会做的事情。
如果它是 Student 的子集合,则意味着课程中不能有超过一名学生。