Spring Boot Vue Element入门实战(十二)PowerDesigner数据库建模

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u013254183/article/details/100275544

本博客属作者原创,未经允许禁止转载,请尊重原创!如有问题请联系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
点击这里返回目录

程序人生,更多分享请关注公众号
在这里插入图片描述

源代码下载

关注上面公众号,回复源码即可获取gitbug/gitee下载地址

猜你喜欢

转载自blog.csdn.net/u013254183/article/details/100275544