MySQL-教學系統數據庫設計


根據大學教學系統的原型,我構建出如下ER關系圖,來學習搭建數據庫:

上面共有五個實體,分別是學生,教師,課程,院系,行政班級:

1、其中學生和課程的關系是多對多,即一個學生可以選擇多門課程,而一個課程又有多個學生選擇。每個學生的每門課程都有一個成績,所以選課表中應該有成績字段。

2、課程和教師是多對一關系,即一個教師只教一門課程,而一個課程又由多位老師教授。

3、教師和院系是一對多的關系,即一個教師只屬於一個院系,而一個院系可以聘請多位老師。

4、行政班級和院系是多對一的關系,即一個院系有多個行政班級,而一個行政班級只屬於一個院系。

5、學生和行政班級是多對一的關系,即一個行政班級有多個學生,而一個學生只屬於一個行政班級。

根據以上分析建立數據庫:

1、在桌面上新建文本文件,重命名為create.sql,然后圖標自動變成如下圖:

 雙擊自動使用MySQL Workbench打開,然后編輯如下代碼:

  1 #########################
  2 #CREATED BY jiwangbujiu##
  3 #########################
  4 
  5 
  6 
  7 
  8 
  9 #########################
 10 ########創建數據庫#######
 11 #########################
 12 CREATE DATABASE education;
 13 
 14 
 15 #########################
 16 ########使用數據庫#######
 17 #########################
 18 USE education;
 19 
 20 
 21 #########################
 22 ########新建學生表#######
 23 #########################
 24 CREATE TABLE students
 25 (
 26 stu_id        int       NOT NULL    AUTO_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 TABLE courses
 40 (
 41 cou_id        int       NOT NULL    AUTO_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 TABLE pick_courses
 54 (
 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 TABLE teachers
 66 (
 67 tec_id        int       NOT NULL    AUTO_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 TABLE departments
 78 (
 79 dep_id        int       NOT NULL    AUTO_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 TABLE classes
 90 (
 91 cls_id        int       NOT NULL    AUTO_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) REFERENCES classes (cls_id);
102 ALTER TABLE teachers ADD CONSTRAINT fk_teacher_departments FOREIGN KEY (dep_id) REFERENCES departments (dep_id);
103 ALTER TABLE classes ADD CONSTRAINT fk_classes_departments FOREIGN KEY (dep_id) REFERENCES departments (dep_id);
104 ALTER TABLE pick_courses ADD CONSTRAINT fk_pick_courses_courses FOREIGN KEY (cou_id) REFERENCES courses (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文件生成數據庫。生成的數據庫關系圖如下:

至此數據庫框架就搭建好了,接下來就是往里面錄入數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM