用关系建模3个实体

Ash*_*kan 9 database database-design erd entity

假设我们的环境中有三个实体,教师,学生课程.

  • 每位教师都有(教授)一门或多门课程,每门课程由0位以上的教师提供
  • 每个学生都参加了一门或多门课程,每门课程由0名或更多学生参加
  • 每位教师有0个或更多学生,每个学生有1个或更多教师

在这种关系中,每个关系都可以从另外两个关系推断出来,例如,知道T1老师正在教授哪些学生,通过老师和课程之间的关系来看看老师T1教授的课程,然后去通过课程与学生之间的关系,了解哪些学生参加了这些课程.这些学生是由T1老师教授的.

因此,我们不需要学生和教师之间的明确关系,因为"概念上"这种关系存在.

最后问题是:

概念设计中,是否有必要展示所有这三种关系?

作为额外信息,如果关系保持为推断关系或应明确定义,那么它在逻辑设计(设计数据库表和关系)中的情况如何?

Dam*_*vic 7

这是一个例子,

概念(使用NORMA)

在此输入图像描述

老师教课程

  • 有些教师可能会教授不止一门课程,而对于某些课程,不止一位教师会教授该课程.
  • 在每个教师教学课程中,每个教师,课程组合最多发生一次.

学生参加课程

  • 有些学生可能会参加一门以上的课程而某些课程可能会有多名学生参加该课程.
  • 在每个学生参加课程的人口中,每个学生,课程组合最多发生一次.

老师辅导学生课程

  • 对于每个学生和课程,最多只有一名教师导师,即该课程的学生.

约束

  • 对于每个教师和课程,当该教师教授该课程时,该教师会对该课程的学生进行辅导.

  • 对于每个学生和课程,当该学生参加该课程时,该学生将参加该课程.


合乎逻辑

在此输入图像描述

  • 如果你只有一个`StudentCourseTeacher`表,那么你可以声称(插入一条记录)学生正在由生物老师(不教数学)辅导数学,而FK也无济于事.请参阅概念层面的约束语言表达. (2认同)