【问题标题】:How Can I Improve Relationships in My Database?如何改善数据库中的关系?
【发布时间】:2019-06-20 22:45:12
【问题描述】:

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

每个教室可以有最少1个或最多多个Section。 每个Section都有很多CoursesStudents列表。 每个教室都有教师

我为此考虑的数据库是

  • 学生(多对多形成注册)课堂

  • 教室(多对多形成 Class_Section )部分

  • Section(多对多形成 Section_Courses )课程

  • 学生(多对多形成注册)课堂

  • 课堂 {class_id, section_id(FK)}(一对多)部分

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

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

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

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

【问题讨论】:

    标签: database laravel laravel-5 database-design laravel-datatables


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      相关资源
      最近更新 更多