首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何改善数据库中的关系?

如何改善数据库中的关系?
EN

Stack Overflow用户
提问于 2019-01-27 22:18:56
回答 1查看 1.8K关注 0票数 1

我在设计专业数据库系统和在Laravel制作一个学校管理系统方面非常新。我在数据库的设置上有问题。如何招收学生。要知道这个问题,你必须阅读一次需求。

每个教室至少可以有一个或最多多个区段。每一个都有许多课程、学生的入学名单。每个都有教师

我正在考虑的数据库是

  • 学生(多到多组成注册)教室
  • 教室(多到多组成Class_Section )部分
  • 部分(多到多组成Section_Courses )课程

  • 学生(多到多组成注册)教室
  • 教室{class_id,section_id(FK)} (一对多)
  • {section_id,course_id} (一对多)课程

我需要的是,当我注册一个学生时,我想让他在classroom和教室的任何部分注册。学生可以看到该部分的所有课程。

这就清楚地表明,登记也应该有id节。但如果我把一个章节和注册联系起来。它将显示所有部分。

请给我一个可能的方法来设计这个数据库。我被困在这里找不到更好的选择了。

EN

回答 1

Stack Overflow用户

发布于 2019-01-28 04:41:58

主要有三种关系类型。他们是,1. 1:1.1.1:1: 3.多对多

从两方面考虑每一种关系。例如,你曾经说过,“每个部门都有许多课程列表。”现在把它倒过来。一门课程可以在多个部分开设吗?如果是的话,那就应该是多对多的关系。否则它应该是一对多的。

同样地,思考课堂和部门之间的关系。你已经说过,“每个教室都可以有最少一个或最多一个部分”。现在从相反的角度来考虑。一节课能有一个以上的教室吗?如果它可以有一个以上的教室,那么你需要很多很多。不然的话,一对多人就可以了。

要点是,如果双方的关系是“一对多”,那么就需要多到多的关系。

关于只展示那一节的课程,不要担心。首先设计数据库。拉勒维尔处理关系非常好。事实上,雄辩的关系是非常有力的工具。您还可以使用多态关系和中间关系。试着从文档上读到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54393393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档