跳至主要內容

功能需求分析

学长敲代码原创大约 2 分钟教程javaweb

功能需求分析

提示:

如果文档里面有错误或者疑问,可以通过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);