我在设计专业数据库系统和在Laravel中创建学校管理系统方面是非常新的。我在设置数据库时遇到问题。如何招收学生。要知道问题所在,您必须阅读一次要求。
每个教室最多可以有1个部分。 每个部分都有许多课程和学生注册的列表。 每个教室都有老师
我正在考虑的数据库是
学生(多对多注册)教室
教室(多对多形成Class_Section)部分
部分(多对多形成Section_Courses)课程
或
学生(多对多注册)教室
教室{class_id,section_id(FK)}(一对多)部分
第{section_id,course_id}(一对多)课程
我需要做的是,在招收学生时,我想在ClassRoom和该教室的任何部分中注册他。 学生可以看到该部分中的所有课程。
这清楚表明注册也应具有栏目ID。但是如果我把一个科与注册联系起来。它将显示所有部分。
请建议我一种设计此数据库的可能方法。我被困在这里,找不到更好的选择。
答案 0 :(得分:0)
主要有三种关系。他们是, 1.一对一 2.一对多 3.多对多
从两种方式考虑每种关系。例如,您曾说过:“每个部分都有很多课程列表。”现在反过来考虑。可以提供多个部分的课程吗?如果是的话,那应该是多对多的关系。否则应该是一对多。
类似地考虑教室和科室之间的关系。您已经说过:“每个教室可以有最少1个或最多很多节”。现在反过来考虑。一个部分可以有多个教室吗?如果它可以有多个教室,那么您需要很多教室。否则,一对多就可以了。
要点是,如果双方都是“一对多”,那么您需要多对多关系。
关于仅显示该部分的课程;不用担心首先设计数据库。 Laravel处理关系非常好。实际上,雄辩的关系是非常强大的工具。您也可以使用多态关系和中间关系。尝试从documentation阅读相关内容。