假设我们的环境中有三个实体,教师、学生和课程。
- 每位教师都有(教授)1门或更多门课程,每门课程由0位或更多位教师提供
- 每个学生都修过 1 门或更多门课程,每门课程由 0 位或更多学生选修
- 每个教师有 0 个或多个学生,每个学生有 1 个或多个教师
在这种关系中,每个关系都可以从其他两个关系中推断出来,例如知道T1老师正在教哪些学生,通过Teacher和Course之间的关系,看看T1老师正在教什么课程,然后去通过Course 和 Student之间的关系来查看哪些学生上过这些课程。这些学生是 T1 老师正在教的学生。
所以我们不需要Student 和 Teacher之间的明确关系,因为“概念上”这种关系是存在的。
最后的问题是:
在概念设计中是否有必要展示所有三种关系?
作为额外的信息,在逻辑设计(设计数据库表和关系)中,关系应该保持为推断关系还是应该明确定义?