版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本博客属作者原创,未经允许禁止转载,请尊重原创!如有问题请联系QQ509961766
(一)需求
有学生和老师,超级管理员3个角色,老师登录进去可以编辑学生信息,比赛成绩等等,普通学生登录进去只能查询成绩,修改自己的信息,超级管理员登录进去什么都可以操作,并且有且只能有一个,无法被删除。
注意本系统数据库设计都没有考虑索引,严格来说查询字段需要加入索引
首先需要新建5个表,
- 学生表,里面是学生的一些基本信息,
- 成绩表,里面是每个学生每项运动的成绩,
- 教师表,里面是教师的一些信息,
- 基础数据表,里面是一些数据类型,例如有哪些运动项目,哪些用户类型,哪些状态等等
- 日志表,记录系统里面操作日志,登录登出,注册审核,信息编辑,成绩编辑等等记录
学生注册后需要教师审批才能登录
教师可以管理学生信息,编辑学生成绩,基础数据表,而学生只能查看成绩和信息
(二)数据库建模
学生表
drop table if exists student;
/*==============================================================*/
/* Table: student */
/*==============================================================*/
create table student
(
id bigint(40) not null auto_increment comment 'id',
name varchar(40) default NULL comment '姓名',
password varchar(40) default NULL comment '密码md5加密',
code varchar(40) default NULL comment '学号',
birthday date default NULL comment '出生日期',
sex tinyint(2) default 1 comment '性别(1:男;2:女)',
nation varchar(40) default NULL comment '民族',
college varchar(40) default NULL comment '学院',
major varchar(40) default NULL comment '专业',
nationality varchar(40) default NULL comment '国籍',
entrance_date date default NULL comment '入学日期',
student_type tinyint(2) default 2 comment '学生类型(对应基础数据表type=2)',
identity varchar(18) default NULL comment '身份证',
phone varchar(20) default NULL comment '电话',
native_place varchar(40) default NULL comment '籍贯',
status tinyint(4) default 1 comment '状态(对应基础数据表type=3)',
primary key (id)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
成绩表
drop table if exists score;
/*==============================================================*/
/* Table: score */
/*==============================================================*/
create table score
(
id bigint(40) not null auto_increment comment 'id',
student_id bigint(40) not null comment '学生id',
project tinyint(4) default NULL comment '比赛项目(对应基础数据表type=1)',
score decimal(5) default NULL comment '分数',
ranking smallint(5) default NULL comment '排名',
unit varchar(40) default NULL comment '单位',
teacher_id bigint(40) not null comment '教师id',
update_time datetime default NULL comment '更新时间',
remark varchar(40) default NULL comment '备注',
primary key (id)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
教师表
drop table if exists teacher;
/*==============================================================*/
/* Table: teacher */
/*==============================================================*/
create table teacher
(
id bigint(40) not null auto_increment comment 'id',
name varchar(40) default NULL comment '姓名',
password varchar(40) default NULL comment '密码md5加密',
code varchar(20) default NULL comment '教师编号',
birthday date default NULL comment '出生日期',
sex tinyint(4) default 1 comment '性别(1:男;2:女)',
phone varchar(20) default NULL comment '电话',
identity varchar(17) default NULL comment '身份证',
nation varchar(20) default NULL comment '民族',
nationality varchar(20) default NULL comment '国籍',
native_place varchar(20) default NULL comment '籍贯',
major varchar(20) default NULL comment '教师科目',
entrance_date date default NULL comment '来校时间',
remark varchar(40) default NULL comment '备注',
primary key (id)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
基础数据表
drop table if exists basic_data;
/*==============================================================*/
/* Table: basic_data */
/*==============================================================*/
create table basic_data
(
type smallint(10) not null comment '基础数据类型',
name varchar(50) default NULL comment '基础类型名称',
basic_code varchar(50) not null comment '基础数据编号',
basic_name varchar(50) default NULL comment '基础编号名称',
primary key (type, basic_code)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
初始化数据
日志表
drop table if exists log;
/*==============================================================*/
/* Table: log */
/*==============================================================*/
create table log
(
id bigint(40) not null auto_increment comment 'id',
content varchar(40) default NULL comment '日志内容',
type tinyint(2) default NULL comment '日志类型(对应基础数据表type=4)',
person_id bigint(40) comment '对应的人员ID',
person_name varchar(40) default NULL comment '对应的人员姓名',
log_time datetime default NULL comment '日志时间',
remark varchar(40) default NULL comment '备注',
primary key (id)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
最后导出sql脚本导入Navicat中就可以了,sql脚本会提交到git后端db目录中
上一篇:Spring Boot Vue Element入门实战(十一)后端SpringBoot服务搭建
下一篇:Spring Boot Vue Element入门实战(十三)Spring Boot+Mybatis+Redis+Swagger
点击这里返回目录
程序人生,更多分享请关注公众号
扫描二维码关注公众号,回复: 7657813 查看本文章
源代码下载
关注上面公众号,回复源码即可获取gitbug/gitee下载地址