mysql 导出表关联图_全栈开发踩坑之路3-MySql数据库设计

729f4ee0969de8e192c7d19fe9494004.png

1.前言

上一篇文章介绍了如何利用SpringBoot搭建后端框架:Alex Wang:全栈开发踩坑之路2-后端架构搭建,本文介绍如何设计系统中MySql数据库的架构。

本后端项目的地址(撰写中):apkkids/mymis_end

2.设计原则

直接参考《阿里巴巴Java开发手册》中关于Mysql规约的部分,https://juejin.im/entry/589c173b8d6d81006c7e9f70。

3.数据库设计

依据Alex Wang:全栈开发踩坑之路1-技术架构文中的系统需求,可以将系统中的表分为三类:

  1. 用来进行系统管理和权限控制的系统表(后缀为sys),包括role_sys(角色),resource_sys(资源),admin_sys(管理员),role_resource(角色资源关联表),admin_role(管理员角色管理表);
  2. 字典表(后缀为dic):nation_dic(国家)、position_dic(职位)、joblevel_dic(职级)、pliticstatus_dic(政治身份);
  3. 数据表(没有后缀):employee(职员)、组织(organization)、salary(工资)

其中字典表和数据表没有什么特殊性,主要考虑系统表的设计:

  1. 资源:资源代表系统中可以访问和操作的数据,而系统中的数据是由某个URL指向的页面来展示的,因为本系统是一个Single Page Application,因此某个URL就可以代表某个资源。例如/sys/admin这个URL可以指向某个页面,这个页面上就可以操作管理员这种数据,所以/sys/admin就代表管理员资源。
  2. 角色:角色是一组资源的集合,例如某个角色拥有三个资源,拥有这个角色的管理员就可以访问这三个页面,从而操作这三种资源;
  3. 管理员:管理员是角色的拥有者,每个管理员可以拥有0至n个角色,而每个角色可以拥有0至n个资源;
  4. 关联表:角色和资源是多对多关系,所以建立一个角色资源关联表,其中两个外键分别指向角色表和资源表;同样,管理员和角色也是多对多关系,所以建立管理员角色关联表,其中两个外键分别指向管理员表和角色表。
  5. 外键:外键主要是两种,一种是指向字典表id,另一种则是关联表中的指向参与关联的表的id。

最终的数据库设计如下图所示,当然这是一个早期版本,后面会继续调整:

514e37435502b0df40cd907736fef30a.png
数据库ER图

4.建表代码

可使用各类MySql工具创建数据库表,并输入初始数据,我用的是Navicat for Mysql,如下图所示:

5283c15468022467b98d5b97c5632790.png
Navicat 建表

当然,如果习惯的话,使用IntelliJ自带的数据库插件也非常方便:

ff047165ce411e95e735d7cdb3439d45.png
使用IntelliJ建表

建表语句在git项目中的mymis.sql文件中:https://github.com/apkkids/mymis_end/blob/master/mymis.sql。连接你的Mysql服务器,直接执行即可。

5.下一步工作

至此Mysql数据库就初步设计完成,下一步工作是导入并编写Mybatis相关配置文件和代码,并测试数据库操作。

6.学习资料

廖雪峰的教程:SQL教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值