asp.net/c# 教务管理系统
数据库文件说明
教务管理系统
数据库设计
关系模型
管理员(主键,用户名,密码)
学院(主键,学院名,院长,学院介绍)
教师(主键,用户名,密码,姓名,教师编号,性别,年龄,职称,毕业院校,所属学院)
班级(主键,班级名,所属学院,班主任)
课程(主键,课程名,学分)
教室(主键,教室编号,地点)
排课安排(主键,课程,教师,上课教室,上课班级,上课时间安排)
数据字典
管理员表
| 字段名 | 字段 | 数据类型 | 约束 | 描述 |
| 主键 | id | varchar(40) | primary key; | 唯一标识 |
| 用户名 | username | varchar(20) | not null;unique; | 不可为空;字段唯一; |
| 密码 | password | varchar(20) |
学院表
| 字段名 | 字段 | 数据类型 | 约束 | 描述 |
| 主键 | id | varchar(40) | primary key; | 唯一标识 |
| 学院名 | name | varchar(18) | not null; | 不可为空; |
| 院长 | manager | varchar(18) | not null; | 不可为空; |
| 学院介绍 | description | varchar(255) |
教师表
| 字段名 | 字段 | 数据类型 | 约束 | 描述 |
| 主键 | id | varchar(40) | primary key; | 唯一标识 |
| 用户名 | username | varchar(20) | not null;unique; | 不可为空;字段唯一; |
| 密码 | password | varchar(20) | ||
| 姓名 | name | varchar(18) | not null; | 不可为空; |
| 教师编号 | numb | varchar(32) | not null;unique; | 不可为空;字段唯一; |
| 性别 | gender | varchar(10) | ||
| 年龄 | age | int | ||
| 职称 | positionstr | varchar(20) | ||
| 毕业院校 | byyx | varchar(20) | ||
| 所属学院 | collegeid | varchar(255) |
班级表
| 字段名 | 字段 | 数据类型 | 约束 | 描述 |
| 主键 | id | varchar(40) | primary key; | 唯一标识 |
| 班级名 | name | varchar(18) | not null;unique; | 不可为空;字段唯一; |
| 所属学院 | collegeid | varchar(255) | ||
| 班主任 | tid | varchar(255) |
课程表
| 字段名 | 字段 | 数据类型 | 约束 | 描述 |
| 主键 | id | varchar(40) | primary key; | 唯一标识 |
| 课程名 | name | varchar(18) | not null; | 不可为空; |
| 学分 | score | int |
教室表
| 字段名 | 字段 | 数据类型 | 约束 | 描述 |
| 主键 | id | varchar(40) | primary key; | 唯一标识 |
| 教室编号 | name | varchar(18) | not null;unique; | 不可为空;字段唯一; |
| 地点 | place | varchar(255) |
排课安排表
| 字段名 | 字段 | 数据类型 | 约束 | 描述 |
| 主键 | id | varchar(40) | primary key; | 唯一标识 |
| 课程 | courseid | varchar(255) | ||
| 教师 | teacherId | varchar(255) | ||
| 上课教室 | room | varchar(255) | ||
| 上课班级 | clazzId | varchar(255) | ||
| 上课时间安排 | coursetime | varchar(255) |
删改查sql语句示范
-- ----------------------------
-- TODO1 创建Mysql数据库和表,只需执行一次
-- ----------------------------
Create Database If Not Exists c22052422jiaowu Character Set UTF8;
use c22052422jiaowu;-- ----------------------------
-- 创建表:管理员
-- ----------------------------
create table tb_admin (id varchar(40) , -- 主键username varchar(20) , -- 用户名password varchar(20) , -- 密码PRIMARY KEY (`id`)
);
-- 默认插入一条管理员 数据
insert into tb_admin (id,username,password) values('1234567890','1','1');
-- ----------------------------
-- 创建表:学院
-- ----------------------------
create table tb_college (id varchar(40) , -- 主键name varchar(18) , -- 学院名manager varchar(18) , -- 院长description varchar(255) , -- 学院介绍PRIMARY KEY (`id`)
);
-- ----------------------------
-- 创建表:教师
-- ----------------------------
create table tb_teacher (id varchar(40) , -- 主键username varchar(20) , -- 用户名password varchar(20) , -- 密码name varchar(18) , -- 姓名numb varchar(32) , -- 教师编号gender varchar(10) , -- 性别age int , -- 年龄positionstr varchar(20) , -- 职称byyx varchar(20) , -- 毕业院校collegeid varchar(255) , -- 所属学院PRIMARY KEY (`id`)
);
-- ----------------------------
-- 创建表:班级
-- ----------------------------
create table tb_clazz (id varchar(40) , -- 主键name varchar(18) , -- 班级名collegeid varchar(255) , -- 所属学院tid varchar(255) , -- 班主任PRIMARY KEY (`id`)
);
-- ----------------------------
-- 创建表:课程
-- ----------------------------
create table tb_course (id varchar(40) , -- 主键name varchar(18) , -- 课程名score int , -- 学分PRIMARY KEY (`id`)
);
-- ----------------------------
-- 创建表:教室
-- ----------------------------
create table tb_classroom (id varchar(40) , -- 主键name varchar(18) , -- 教室编号place varchar(255) , -- 地点PRIMARY KEY (`id`)
);
-- ----------------------------
-- 创建表:排课安排
-- ----------------------------
create table tb_record (id varchar(40) , -- 主键courseid varchar(255) , -- 课程teacherId varchar(255) , -- 教师room varchar(255) , -- 上课教室clazzId varchar(255) , -- 上课班级coursetime varchar(255) , -- 上课时间安排PRIMARY KEY (`id`)
);-- 创建 用户名 唯一索引
ALTER TABLE tb_admin ADD UNIQUE INDEX index_tb_admin_username(username);-- 创建 用户名 唯一索引
ALTER TABLE tb_teacher ADD UNIQUE INDEX index_tb_teacher_username(username);
-- 创建 教师编号 唯一索引
ALTER TABLE tb_teacher ADD UNIQUE INDEX index_tb_teacher_numb(numb);
-- 创建 性别 字段限制
alter table tb_teacher add constraint check_tb_teacher_gender check(gender in('男','女'));
-- 创建 所属学院 外键约束,创建后,删除已经绑定了外键的学院 会报错
-- alter table tb_teacher add CONSTRAINT frn_teacher_college FOREIGN KEY(collegeid) REFERENCES tb_college (id);-- 创建 班级名 唯一索引
ALTER TABLE tb_clazz ADD UNIQUE INDEX index_tb_clazz_name(name);
-- 创建 所属学院 外键约束,创建后,删除已经绑定了外键的学院 会报错
-- alter table tb_clazz add CONSTRAINT frn_clazz_college FOREIGN KEY(collegeid) REFERENCES tb_college (id);
-- 创建 班主任 外键约束,创建后,删除已经绑定了外键的教师 会报错
-- alter table tb_clazz add CONSTRAINT frn_clazz_teacher FOREIGN KEY(tid) REFERENCES tb_teacher (id);-- 创建 教室编号 唯一索引
ALTER TABLE tb_classroom ADD UNIQUE INDEX index_tb_classroom_name(name);-- 创建 课程 外键约束,创建后,删除已经绑定了外键的课程 会报错
-- alter table tb_record add CONSTRAINT frn_record_course FOREIGN KEY(courseid) REFERENCES tb_course (id);
-- 创建 教师 外键约束,创建后,删除已经绑定了外键的教师 会报错
-- alter table tb_record add CONSTRAINT frn_record_teacher FOREIGN KEY(teacherId) REFERENCES tb_teacher (id);
-- 创建 上课教室 外键约束,创建后,删除已经绑定了外键的教室 会报错
-- alter table tb_record add CONSTRAINT frn_record_classroom FOREIGN KEY(room) REFERENCES tb_classroom (id);
-- 创建 上课班级 外键约束,创建后,删除已经绑定了外键的班级 会报错
-- alter table tb_record add CONSTRAINT frn_record_clazz FOREIGN KEY(clazzId) REFERENCES tb_clazz (id);-- ----------------------------
-- TODO2 创建 视图和存储过程等
-- ------------------------------ ----------------------------
-- 创建视图:教师 表 和对应外键信息的视图
-- ----------------------------
create view view_teacher as
select t.id as 主键 ,t.username as 用户名,t.password as 密码,t.name as 姓名,t.numb as 教师编号,t.gender as 性别,t.age as 年龄,t.positionstr as 职称,t.byyx as 毕业院校,collegeid.name as 所属学院
from tb_teacher as t ,tb_college collegeid
where 1=1 and t.collegeid=collegeid.id ;-- ----------------------------
-- 创建视图:班级 表 和对应外键信息的视图
-- ----------------------------
create view view_clazz as
select t.id as 主键 ,t.name as 班级名,collegeid.name as 所属学院,tid.name as 班主任
from tb_clazz as t ,tb_college collegeid,tb_teacher tid
where 1=1 and t.collegeid=collegeid.id and t.tid=tid.id ;-- ----------------------------
-- 创建视图:排课安排 表 和对应外键信息的视图
-- ----------------------------
create view view_record as
select t.id as 主键 ,courseid.name as 课程,teacherId.name as 教师,room.name as 上课教室,clazzId.name as 上课班级,t.coursetime as 上课时间安排
from tb_record as t ,tb_course courseid,tb_teacher teacherId,tb_classroom room,tb_clazz clazzId
where 1=1 and t.courseid=courseid.id and t.teacherId=teacherId.id and t.room=room.id and t.clazzId=clazzId.id ;-- -------------------
-- PROCEDURE:login
-- 返回结果success和message:1表成功 0 表失败,message是提示消息
-- -------------------
-- 执行下句测试,会显示1,login success。
-- call proc_login ('1','1');
-- -------------------
create PROCEDURE proc_login(in usernameP varchar(20),passwordP varchar(20))
beginif exists(select * from tb_admin where usernameP=username) THEN-- 判断用户是否存在beginif exists(select * from tb_admin where usernameP=username and passwordP=password)THEN-- 判断密码正确select 1 as success,'login success' as message;elseselect 0 as success,'login fail' as message;END IF;end;elsebeginselect 0 as success,'user_does_not_exist' as message;end;END IF;
end;-- -------------------
-- PROCEDURE:register
-- 返回结果success和message:1表成功 0 表失败,message是提示消息
-- ------------------
-- 执行以下测试,会显示0,username_already_exists。
-- call proc_register( '1','1');
-- -------------------
create PROCEDURE proc_register(in usernameP varchar(20),passwordP varchar(20))
beginif exists(select * from tb_admin where usernameP=username) thenselect 0 as success,'username_already_exists' as message;elsebegininsert into tb_admin (id,username,password) values(Replace(UUID(),'-',''),usernameP,passwordP);select 1 as success,'registration_success' as message;end;end if;
end;-- --------------------------------------
-- 存储过程:添加或者修改学院
-- --------------------------------------
create PROCEDURE proc_college (in idP varchar(255) ,nameP varchar(18),managerP varchar(18),descriptionP varchar(255))
beginif exists(select id from tb_College where idP=id) then -- updatebeginupdate tb_College set name=nameP,manager=managerP,description=descriptionP where id=idP;select 1 as success,'update-successfully' as message;end;else -- addbegininsert into tb_College values(Replace(UUID(),'-','') ,nameP,managerP,descriptionP );select 1 as success,'added-successfully' as message;end;end if;
end;-- --------------------------------------
-- 存储过程:添加或者修改班级
-- --------------------------------------
create PROCEDURE proc_clazz (in idP varchar(255) ,nameP varchar(18),collegeidP varchar(255),tidP varchar(255))
beginif exists(select id from tb_Clazz where idP=id) then -- updatebeginupdate tb_Clazz set name=nameP,collegeid=collegeidP,tid=tidP where id=idP;select 1 as success,'update-successfully' as message;end;else -- addbegininsert into tb_Clazz values(Replace(UUID(),'-','') ,nameP,collegeidP,tidP );select 1 as success,'added-successfully' as message;end;end if;
end;-- --------------------------------------
-- 存储过程:添加或者修改课程
-- --------------------------------------
create PROCEDURE proc_course (in idP varchar(255) ,nameP varchar(18),scoreP int)
beginif exists(select id from tb_Course where idP=id) then -- updatebeginupdate tb_Course set name=nameP,score=scoreP where id=idP;select 1 as success,'update-successfully' as message;end;else -- addbegininsert into tb_Course values(Replace(UUID(),'-','') ,nameP,scoreP );select 1 as success,'added-successfully' as message;end;end if;
end;-- --------------------------------------
-- 存储过程:添加或者修改教室
-- --------------------------------------
create PROCEDURE proc_classroom (in idP varchar(255) ,nameP varchar(18),placeP varchar(255))
beginif exists(select id from tb_Classroom where idP=id) then -- updatebeginupdate tb_Classroom set name=nameP,place=placeP where id=idP;select 1 as success,'update-successfully' as message;end;else -- addbegininsert into tb_Classroom values(Replace(UUID(),'-','') ,nameP,placeP );select 1 as success,'added-successfully' as message;end;end if;
end;-- --------------------------------------
-- 存储过程:添加或者修改排课安排
-- --------------------------------------
create PROCEDURE proc_record (in idP varchar(255) ,courseidP varchar(255),teacherIdP varchar(255),roomP varchar(255),clazzIdP varchar(255),coursetimeP varchar(255))
beginif exists(select id from tb_Record where idP=id) then -- updatebeginupdate tb_Record set courseid=courseidP,teacherId=teacherIdP,room=roomP,clazzId=clazzIdP,coursetime=coursetimeP where id=idP;select 1 as success,'update-successfully' as message;end;else -- addbegininsert into tb_Record values(Replace(UUID(),'-','') ,courseidP,teacherIdP,roomP,clazzIdP,coursetimeP );select 1 as success,'added-successfully' as message;end;end if;
end;-- ----------------------------------------------
-- trigger
-- ----------------------------------------------
CREATE TRIGGER trigger_insert_admin
BEFORE INSERT ON tb_admin FOR EACH ROW
BEGINif LENGTH(new.password)<1 thenset new.password = '123456';end if;
END;CREATE TRIGGER trigger_insert_teacher
BEFORE INSERT ON tb_teacher FOR EACH ROW
BEGINif LENGTH(new.password)<1 thenset new.password = '123456';end if;
END;-- -----------------
-- TODO3 创建用户并授权
-- -----------------
CREATE USER 'c22052422jiaowu'@'%' IDENTIFIED BY 'c22052422jiaowu';
GRANT ALL ON c22052422jiaowu.* TO 'c22052422jiaowu'@'%';
系统截图



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
