-- 用户角色表
create table role
(
rid int primary key auto_increment, -- 角色id
rname varchar(20) -- 角色名
);
insert into role(rname) values('管理员');
insert into role(rname) values('教师');
insert into role(rname) values('学生');
-- 用户表:用户和角色存在多对一关系
create table users
(
uid int primary key auto_increment, -- 用户id
uaccount varchar(20) unique, -- 账号,唯一
upwd varchar(20), -- 密码
uimg varchar(50), -- 头像
role_id int, -- 角色id,外键
foreign key(role_id) references role(rid)
);
insert into users(uaccount,upwd,uimg,role_id) values('admin','123','/EducationSystem/images/user.png',1);
insert into users(uaccount,upwd,uimg,role_id) values('teacher','123','/EducationSystem/images/user.png',2);
insert into users(uaccount,upwd,uimg,role_id) values('student','123','/EducationSystem/images/user.png',3);
-- 教师表:教师和用户存在一对一关系,教师和课程存在一对多关系
create table teacher
(
tid int primary key auto_increment, -- 教师id
tno varchar(20) unique,-- 教师编号,唯一
tname varchar(20), -- 姓名
tsex varchar(10), -- 性别
tage int, -- 年龄
tdname varchar(30), -- 部门名称
tjobtitle varchar(30), -- 职称
tpwd varchar(20), -- 密码
timg varchar(50), -- 头像
tremark varchar(200), -- 简介
user_account varchar(20), -- 用户账号,外键
foreign key(user_account) references users(uaccount)
);
-- 课程表:课程和教师存在多对一关系
create table course
(
cid int primary key auto_increment, -- 课程id
cno varchar(20) unique, -- 课程编号
cname varchar(50), -- 课程名
ccredit int, -- 学分
csdate date, -- 开课日期
caddr varchar(50), -- 上课地点
ctype varchar(20), -- 课程类型
teacher_no varchar(20), -- 教师编号,外键
foreign key(teacher_no) references teacher(tno)
);
-- 学生表:学生和用户存在一对一关系,学生和课程存在多对多关系
create table student
(
sid int primary key auto_increment, -- 学生id
sno varchar(20) unique, -- 学生学号
sname varchar(20), -- 姓名
ssex varchar(10), -- 性别
sage int, -- 年龄
smajor varchar(30), -- 专业
suniversity varchar(30), -- 学院
smobile varchar(20), -- 手机号
saddr varchar(50), -- 地址
sindate date, -- 入学时间
soutdate date, -- 毕业时间
spwd varchar(20), -- 密码
sclass varchar(20), -- 班级
simg varchar(50), -- 头像
user_account varchar(20), -- 用户账号,外键
foreign key(user_account) references users(uaccount)
);
-- 学生和课程的中间表:选课表
create table selectcourse
(
scid int primary key auto_increment, -- 选课表id
course_no varchar(20), -- 课程编号,外键
student_no varchar(20), -- 学生学号,外键
foreign key(course_no) references course(cno),
foreign key(student_no) references student(sno)
);
-- 成绩表:学生和成绩之间有一对多的关系
create table score
(
scid int primary key auto_increment, -- 成绩id
scgrade double(4,1), -- 分数
student_no varchar(20), -- 学生学号,外键
course_no varchar(20), -- 课程编号,外键
foreign key(student_no) references student(sno),
foreign key(course_no) references course(cno)
);