用关系建模3个实体

时间:2012-10-26 01:25:47

标签: database database-design entity erd

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

  • 每位教师都有(教授)一门或多门课程,每门课程由0位或更多老师提供
  • 每位学生已修读一门或多门课程,每门课程由0名或更多学生参加
  • 每位教师有0个或更多学生,每个学生有1个或更多教师

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

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

最后问题是:

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

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

1 个答案:

答案 0 :(得分:7)

这是一个例子,

概念(使用NORMA)

enter image description here

老师教课程

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

学生参加课程

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

教师辅导学生课程

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

<强>约束

  • 对于每位教师和课程,当该教师教授该课程时,该教师会为该课程的学生提供辅导。

  • 对于每个学生和课程,当该学生参加该课程时,该课程的一些教师辅导员。


<强>逻辑

enter image description here