# H05_設計一個具備IEF特性資料庫系統(三個以上的資料表) ### 學生管理系統 :::warning 可以讓學校管理者輕鬆地存取、編輯和查詢學生的資料、課程表和成績紀錄。 ::: :::danger 1.學生資料表(Student),儲存學生相關基本資料(例如學生姓名、出生年月日等) 2.課程資料表(Course),儲存各課程資訊(例如課程名稱、教室編號等) 3.成績資料表(Grade),儲存學生相對應科目得分數(例如學號、課程編號等) ::: ### 三項資料表:學生資料表、課程資料表、成績資料表 :::success 1.Student 學生資料表 ::: | 欄位名稱 | 資料型態 | 簡述 | 限制 | | ---------- | ----------- | -------- | ------- | | Student_ID | varchar(8) | 學號 | primary | | Name | varchar(10) | 學生姓名 | 不為空 | | Birth | datetime | 生日 | 不為空 | | Gender | char(1) | 性別 | 不為空 | | Phone | char(10) | 手機 | unique/09XX-XXX-XXX | | Address | varchar(50) | 地址 | 不為空值 | ```SQL create table Student ( Student_ID varchar(8) PRIMARY KEY, Name varchar(10) NOT NULL CHECK (TRIM(name) <> ''), Birth datetime NOT NULL (TRIM(Birth) <> ''), Gender char(1) NOT NULL CHECK (Gender='M' or Gender='F'), Phone char(10) unique CHECK (phone<>"" and phone like ('.[^0][9].') and char_length(phone)=10), Address varchar(50) NOT NULL CHECK (TRIM(Address) <> '') ); ``` :::success 2.Course 課程資料表 ::: | 欄位名稱 | 資料型態 | 簡述 | 限制 | | ---------- | ----------- | -------- | ---------- | | Course_ID | varchar(6) | 課程ID | primary | | Course_Name| varchar(15) | 課程名稱 | 不為空 | | Teacher | varchar(10) | 授課教師 | 不為空 | | Class_Time | varchar(10) | 上課時間 | 不為空 | | Classroom | char(5) | 上課教室 | 不為空 | ```SQL create table Course ( Course_ID varchar(6) PRIMARY KEY, Course_Name varchar(15) NOT NULL CHECK (TRIM(Course_Name) <> ''), Teacher varchar(10) NOT NULL CHECK (TRIM(Teacher) <> ''), Class_Time varchar(10) NOT NULL CHECK (TRIM(Class_Time) <> ''), Classroom char(5) CNOT NULL CHECK (TRIM(Classroom) <> '') ); ``` :::success 3.Grade 成績資料表 ::: | 欄位名稱 | 資料型態 | 簡述 | 限制 | | ---------- | ---------- | -------- | ---------- | | Student_ID | varchar(8) | 課程ID | foreign | | Course_ID | varchar(6) | 學生學號 | foreign | | Score | int(3) | 成績 | 非空 | ```SQL create table Grade ( Student_ID varchar(8) references Student(Student_ID), Course_ID varchar(6) references Course(Course_ID), Score int(3) NOT NULL CHECK (Score>0) ); ```