《排课管理系统》数据库设计
目 录
1、 项目背景及需求分析
1.1项目背景
学校的日常事务管理涉及很多方面,其中排课管理是一个很重要的方面,比较体系化,流程化,适合使用计算机系统管理,该数据库需求分析如下:
学院有若干班级、教师、学生,一个学院设有若干班级,每个班级有若干名学生;每个学生选修若干门课程,一名教师可教授多门课程。每门课程可有若干名学生选修;每门课可以被安排在不同的教室上课,每门课程有固定的学时修完以后有相应学分,考试通过后可获得学分。
1.2需求分析
学生和班级:一个班由多个学生组成,一个学生只能归属于某个班;
学生和课程:一个学生可以选修多门课程,一门课程提供给多个学生选修;
课程和教师:一门课由一个教师教授,一个教师可教授多门课。
教室和班级及课程:一间教室同一时间只能有一个班级上一门课,一间教室可供多个班级上多门课。
3、 逻辑结构设计
3.1简单说明
根据ER图,抽象出7个表。
3.2关系模式
设计表(其中黑体为主键,下划线加斜体表示外键)
学生(学号,姓名,性别,所在班级,电话,生日,住址)
教师(教师编号,姓名,职称)
课程(课程号,课程名,学时,学分,授课教师)
班级(班级编号,班级名称)
教室(教室编号,所在位置)
选课表(学号,课程号,成绩)
排课表(课程号,班级编号,教室编号,上课时间)
3.3表结构
3.1 班级表(Student)
列名 | 中文含义 | 数据类型 | 约束 |
d_no | 班级编号 | Char(8) | 主码 |
d_Name | 班级名称 | char(12) | not null |
3.2 学生信息表(Student)
列名 | 中文含义 | 数据类型 | 约束 |
S_no | 学号 | Char(12) | 主码 |
S_Name | 用户名 | char(10) | not null |
sex | 密码 | char(2) | Not null |
d_no | 班级编号 | Char(8) | 外键 |
phone | 电话 | Char(12) | Not null |
birthday | 生日 | date | |
address | 住址 | Varchar(30) | Not null |
3.3 教室表(Room)
列名 | 中文含义 | 数据类型 | 约束 |
r_no | 教室编号 | Char(8) | 主码 |
r_location | 位置 | char(12) | not null |
3.4 课程表(Course)
列名 | 中文含义 | 数据类型 | 约束 |
c_no | 课程号 | Char(12) | 主码 |
c_name | 课程名 | char(10) | not null |
hours | 学时 | Int | Not null |
credit | 学分 | Int | Not null |
t_no | 授课教师 | Char(12) | 外键 |
3.5 教师表(Teacher)
列名 | 说明 | 数据类型 | 约束 |
t_no | 教师编号 | Char(12) | 主码 |
t_name | 姓名 | char(10) | not null |
t_title | 职称 | Varchar(10) |
3.6 选课表(Choose)
列名 | 说明 | 数据类型 | 约束 |
c_no | 课程号 | Char(12) | 外键(联合主键) |
s_no | 学号 | Char(12) | 外键(联合主键) |
score | 成绩 | int | 默认值0 |
数据库设计定制、代做、交流学习:数据魔方99的个人空间-数据魔方99个人主页-哔哩哔哩视频