根据大学教学系统的原型,我构建出如下ER关系图,来学习搭建数据库:

203e50fd462a7110433fedf88e1fb03f.png

上面共有五个实体,分别是学生,教师,课程,院系,行政班级:

1、其中学生和课程的关系是多对多,即一个学生可以选择多门课程,而一个课程又有多个学生选择。每个学生的每门课程都有一个成绩,所以选课表中应该有成绩字段。

2、课程和教师是多对一关系,即一个教师只教一门课程,而一个课程又由多位老师教授。

3、教师和院系是一对多的关系,即一个教师只属于一个院系,而一个院系可以聘请多位老师。

4、行政班级和院系是多对一的关系,即一个院系有多个行政班级,而一个行政班级只属于一个院系。

5、学生和行政班级是多对一的关系,即一个行政班级有多个学生,而一个学生只属于一个行政班级。

根据以上分析建立数据库:

1、在桌面上新建文本文件,重命名为create.sql,然后图标自动变成如下图:

21bd42236e0b80b32ea677690746a17a.png

双击自动使用MySQL Workbench打开,然后编辑如下代码:

1 #########################2 #CREATED BYjiwangbujiu##3 #########################4

5

6

7

8

9 #########################10 ########创建数据库#######11 #########################12 CREATE DATABASEeducation;13

14

15 #########################16 ########使用数据库#######17 #########################18 USEeducation;19

20

21 #########################22 ########新建学生表#######23 #########################24 CREATE TABLEstudents25 (26 stu_id int NOT NULLAUTO_INCREMENT,27 stu_name char(50) NOT NULL,28 stu_grade char(2) NULL,29 stu_sex char(2) NULL,30 cls_id int NULL, ##外键31 stu_birthday date NULL,32 PRIMARY KEY(stu_id)33 )ENGINE =InnoDB;34

35

36 #########################37 ########新建课程表#######38 #########################39 CREATE TABLEcourses40 (41 cou_id int NOT NULLAUTO_INCREMENT,42 cou_name char(50) NOT NULL,43 cou_score char(2) NULL,44 cou_introduce text NULL,45 cou_limit int NULL,46 PRIMARY KEY(cou_id)47 )ENGINE =InnoDB;48

49

50 #########################51 ########新建选课表#######52 #########################53 CREATE TABLEpick_courses54 (55 stu_id int NOT NULL,56 cou_id int NOT NULL, ##外键57 stu_cou_score int NULL,58 PRIMARY KEY(stu_id,cou_id)59 )ENGINE =InnoDB;60

61

62 #########################63 ########新建教师表#######64 #########################65 CREATE TABLEteachers66 (67 tec_id int NOT NULLAUTO_INCREMENT,68 tec_name char(50) NOT NULL,69 dep_id int NULL, ##外键70 PRIMARY KEY(tec_id)71 )ENGINE =InnoDB;72

73

74 ##########################75 ########新建院系表########76 ##########################77 CREATE TABLEdepartments78 (79 dep_id int NOT NULLAUTO_INCREMENT,80 dep_name char(50) NOT NULL,81 dep_introduce text NULL,82 PRIMARY KEY(dep_id)83 )ENGINE =InnoDB;84

85

86 #########################87 ######新建行政班级表#####88 #########################89 CREATE TABLEclasses90 (91 cls_id int NOT NULLAUTO_INCREMENT,92 dep_id int NULL, ##外键93 PRIMARY KEY(cls_id )94 )ENGINE =InnoDB;95

96

97

98 #########################99 #######添加外键关系######100 #########################101 ALTER TABLE students ADD CONSTRAINT fk_students_classes FOREIGN KEY (cls_id) REFERENCESclasses (cls_id);102 ALTER TABLE teachers ADD CONSTRAINT fk_teacher_departments FOREIGN KEY (dep_id) REFERENCESdepartments (dep_id);103 ALTER TABLE classes ADD CONSTRAINT fk_classes_departments FOREIGN KEY (dep_id) REFERENCESdepartments (dep_id);104 ALTER TABLE pick_courses ADD CONSTRAINT fk_pick_courses_courses FOREIGN KEY (cou_id) REFERENCEScourses (cou_id);105 ALTER TABLE pick_courses ADD CONSTRAINT fk_pick_courses_students FOREIGN KEY (stu_id) REFERENCES students (stu_id);

这就是按照本文开始的ER关系图创建教学信息数据库的SQL代码,写完后保存关闭,然后打开软件navicat直接导入sql文件生成数据库。生成的数据库关系图如下:

cd60ac822ca5fe81280abe71e1f95b72.png

至此数据库框架就搭建好了,接下来就是往里面录入数据。

Logo

更多推荐