功能需求分析
原创大约 2 分钟
功能需求分析
提示:
如果文档里面有错误或者疑问,可以通过B站/QQ联系我改正!感谢
上一阶段我们已经创建好了管理员,学生,班级表
这一阶段我们的功能需求细化一下
- 添加教师角色,管理员可以管理教师(教师编号,教师名)
- 教师发布课程提供给学生选课,并且只能在规定时间内选课,需要记录选课人数上限和已选课人数!
- 选课表应该记录选课时间,学生选课后,教师可以对其进行期末评价和打分
数据库创建新表
创建数据库新表
use stu_manage;-- 选中原来的数据库
-- 教师
create table tb_teacher (
tno varchar(20), -- 教师编号
password varchar(20), -- 密码
tname varchar(20),-- 教师名
PRIMARY KEY (`tno`)
);
-- 课程
create table tb_course (
cno varchar(20), -- 课程号
tno varchar(20),-- 教师号
cname varchar(20), -- 课程名
begindate date, -- 开始选课时间
enddate date, -- 选课结束时间
credits DECIMAL(3,1), -- 学分( 3,1 表示3位数,其中1位为小数,最大是99.9)
limi int, -- 限制人数
count int, -- 已选人数
content varchar(100), -- 课程内容
PRIMARY KEY (`cno`)
);
-- 插入测试数据
insert into tb_teacher values('001','123','王老师');
insert into tb_teacher values('002','123','张老师');
insert into tb_course values('A001','001','大二高数A','2024-11-07','2025-12-07',4.0,50,48,'高数学习');
insert into tb_course values('A002','001','大二高数B','2024-11-07','2025-12-07',4.0,50,48,'高数学习');
insert into tb_course values('A003','002','线性代数下','2024-11-07','2025-12-07',4.0,50,48,'线性代数学习');
-- 创建选课表
create table tb_stu_cou (
cno varchar(20), -- 课程号
sno varchar(20), -- 学生号
chosetime date, -- 选课时间
score DECIMAL(5,2), -- 期末得分( 5,2 表示5位数,其中2位为小数,最大是999.99)
evaluation varchar(100), -- 期末评价
PRIMARY KEY (cno, sno) -- 复合主键
);
-- 课程表关联教师外键
alter table tb_course add CONSTRAINT frn_course_teacher
FOREIGN KEY(tno) REFERENCES tb_teacher (tno);
-- 选课表关联学生和课程
alter table tb_stu_cou add CONSTRAINT frn_chose_student
FOREIGN KEY(sno) REFERENCES tb_student (sno);
alter table tb_stu_cou add CONSTRAINT frn_chose_course
FOREIGN KEY(cno) REFERENCES tb_course (cno);
Navicat查看模型图
