学生选课系统mysql数据字典
时间: 2024-12-27 18:30:01 浏览: 15
### 学生选课系统 MySQL 数据库设计
#### 数据字典与表结构定义
为了构建一个高效的学生选课系统,数据库的设计至关重要。以下是基于已有信息整理的数据字典和各主要表格的字段说明。
#### 表格:`StudInfor`
| 字段名称 | 类型 | 长度 | 是否可空 | 备注 |
|------------|
| `id` | INT | - | NOT NULL | 主键,自动递增 |
| `name` | VARCHAR(20) | 20 | 可空 | 学生姓名 |
| `sex` | VARCHAR(10) | 10 | 可空 | 性别 |
| `birth` | DATE | - | 可空 | 出生日期 |
| `dept` | VARCHAR(50) | 50 | 可空 | 所属院系 |
| `major` | VARCHAR(50) | 50 | 可空 | 专业 |
| `grade` | VARCHAR(20) | 20 | 可空 | 年级 |
| `contact`| VARCHAR(100) | 100 | 可空 | 联系方式 |
创建语句如下:
```sql
CREATE TABLE StudInfor (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20),
sex VARCHAR(10),
birth DATE,
dept VARCHAR(50),
major VARCHAR(50),
grade VARCHAR(20),
contact VARCHAR(100)
);
```
#### 表格:`CourseInfor`
| 字段名称 | 类型 | 长度 | 是否可空 | 备注 |
|--|-------------|---------|----------|--------------------|
| `course_id` | INT | - | NOT NULL | 主键 |
| `title` | VARCHAR(50)| 50 | 不为空 | 课程标题 |
| `credit` | DECIMAL(3,1)| - | 可空 | 学分 |
| `description` | TEXT | - | 可空 | 描述 |
创建语句如下:
```sql
CREATE TABLE CourseInfor(
course_id INT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
credit DECIMAL(3,1),
description TEXT
);
```
#### 表格:`StudCourse`
此表用于记录学生的选课情况,关联学生(`StudInfor`)和课程(`CourseInfor`)两个实体之间的多对多关系。
| 字段名称 | 类型 | 长度 | 是否可空 | 外键约束 |
|--|-----------|-----------------------------------|
| `stud_id` | INT | - | NOT NULL | FOREIGN KEY REFERENCES StudInfor(id)[^1] |
| `course_id` | INT | - | NOT NULL | FOREIGN KEY REFERENCES CourseInfor(course_id)|
创建语句如下:
```sql
CREATE TABLE StudCourse(
stud_id INT,
course_id INT,
FOREIGN KEY (stud_id) REFERENCES StudInfor(id),
FOREIGN KEY (course_id) REFERENCES CourseInfor(course_id),
PRIMARY KEY(stud_id,course_id)
);
```
阅读全文