sql学籍管理系统ER图
时间: 2024-12-28 09:27:38 浏览: 1
### SQL学籍管理系统ER图设计
#### 3.1 抽象出系统的实体
在SQL学籍管理系统的设计中,为了有效管理和查询学生信息,需要定义多个实体及其属性。这些实体之间的关系通过外键来表示,从而形成完整的实体关系模型。
主要实体包括:
- **Student (学生)**
属性:`student_id`, `name`, `gender`, `birth_date`, `major_id`
- **Major (专业)**
属性:`major_id`, `major_name`, `department_id`
- **Department (院系)**
属性:`department_id`, `department_name`
- **Course (课程)**
属性:`course_id`, `course_name`, `credit_hours`
- **Enrollment (选课记录)**
属性:`enrollment_id`, `student_id`, `course_id`, `grade`
- **Teacher (教师)**
属性:`teacher_id`, `name`, `title`, `department_id`
各实体间的关系如下所示:
- 每个学生属于一个特定的专业。
- 每个专业隶属于某个院系。
- 教师可以教授多门课程,并且每位教师都归属于某一个院系。
- 学生可以选择多门不同的课程学习并获得成绩评价。
以下是简化版的ER图描述:
```mermaid
erDiagram
STUDENT {
int student_id PK
string name
char gender
date birth_date
int major_id FK
}
MAJOR {
int major_id PK
string major_name
int department_id FK
}
DEPARTMENT {
int department_id PK
string department_name
}
COURSE {
int course_id PK
string course_name
float credit_hours
}
ENROLLMENT {
int enrollment_id PK
int student_id FK
int course_id FK
float grade
}
TEACHER {
int teacher_id PK
string name
string title
int department_id FK
}
STUDENT ||--o{ MAJOR : belongs_to
MAJOR ||--o{ DEPARTMENT : belongs_to
TEACHER ||--o{ DEPARTMENT : works_in
STUDENT }|--o{ ENROLLMENT : takes_courses
COURSE }|--o{ ENROLLMENT : is_taken_by
```
此ER图展示了各个表之间的一对多或多对多联系[^1]。
阅读全文