题目:
某学校要设计一个数据库,学校的业务规则概括如下:
-
学校内班级若干,每个班级内又有学生若干。
-
学校开设课程若干,只有某些特定的班级能上指定的课程。
-
学生选修某些课程,但是在自身班级下的课程是必修。
-
学校定期组织考试,成绩囊括所有学生所有课程的考试成绩。
根据以上信息,我分析的实体属性有:
学生:学号(主键),姓名,性别,年龄,所属班级id(外键)
班级:班级id(主键),所属专业id(外键),班级人数
专业:专业id(主键),专业名称,
课程:课程id,课程名称,课程教师,课程类型(选修,必修),所属专业id(外键),
成绩:学生id(复合主键),课程id(复合主键,并且作为外键联系学生表和课程表),成绩
关系:
班级(Class)与学生(Student)之间的关系:
- 班级(Class)与学生(Student)之间是一对多的关系,即一个班级可以有多个学生,一个学生只属于一个班级。
学生(Student)与成绩(Score)之间的关系:
- 学生(Student)与成绩(Score)之间是一对多的关系,即一个学生可以有多个成绩记录,一条成绩记录只属于一个学生。
专业(Major)与班级(Class)之间的关系:
专业(Major)与班级(Class)之间是一对多的关系。即一个专业可以有多个班级,一个班级只属于一个专业。
专业(Major)与课程(Course)之间的关系:
- 专业(Major)与课程(Course)之间是一对多的关系,即一个专业可以有多门课程,一门课程只属于一个专业。
课程(Course)与成绩(Score)之间的关系:
- 课程(Course)与成绩(Score)之间是一对多的关系,即一门课程可以有多个成绩记录,一条成绩记录只属于一门课程。
由此画出e-r图