---
# System prepended metadata

title: H05_設計一個具備IEF特性資料庫系統(三個以上的資料表)

---

# 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)
);
```