1

我在设计专业数据库系统和在 Laravel 中制作学校管理系统方面非常陌生。我在设置数据库时遇到问题。如何招收学生。要知道问题,您必须阅读需求一次。

每个教室可以有最少 1 个或最多多个Section。每个部分都有许多课程学生注册的列表。每个教室都有老师

我为此考虑的数据库是

  • 学生(多对多形成注册)教室

  • 课堂(多对多形成 Class_Section )部分

  • 部分(多对多形成 Section_Courses )课程

或者

  • 学生(多对多形成注册)教室

  • 教室 {class_id, section_id(FK)} (一对多)部分

  • Section {section_id, course_id}(一对多)课程

我需要的是,在招收学生时,我想在教室和教室的任何部分注册他。学生可以查看该部分中的所有课程。

这清楚地表明注册也应该有部分 id。但是,如果我将某个部分与注册建立关系。它将显示所有部分。

请建议我设计这个数据库的可能方法。我被困在这里,找不到更好的选择。

4

1 回答 1

0

主要是三种关系。它们是,1. 一对一 2. 一对多 3. 多对多

从两个方面考虑每一种关系。例如,您说过“每个部分都有很多课程列表”。现在反过来想。可以在多个部分中提供课程吗?如果是,那么它应该是多对多关系。否则应该是一对多。

同样考虑课堂和部门的关系。您说过,“每个教室可以有最少 1 个或最多多个部分”。现在反过来想。一个部门可以有多个教室吗?如果它可以有多个教室,那么您需要多对多。否则,一对多就可以了。

要点是,如果双方都是“一对多”,那么您需要多对多关系。

关于仅显示该部分的课程;别担心。首先设计数据库。Laravel 处理关系非常好。事实上,口若悬河的关系是非常强大的工具。您还可以使用多态关系和中介关系。尝试从文档中了解它。

于 2019-01-28T04:41:58.197 回答