关于使用Draw.io画数据库E-R图的说明
背景简介
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
diagrams.net是用于构建图表应用程序的开源技术堆栈,也是世界上最广泛使用的基于浏览器的最终用户图表软件。
安装Draw.io
方式一,无需安装,在线使用
方式二,安装桌面版,离线使用
Drawio-Desktop v13.6.2 Download
备用:
方式三,VSC插件
在Visual Studio Code里面左侧菜单扩展项搜索关键词draw.io即可
目前来说,这个还在非官方发布模式,建议先用Insider版。

如果你不满意当前主题,可以在VSC的设置-扩展-Draw.io Integration-Theme中选择。

新建E-R图
打开Draw.io,在对话框中选择创建新绘图

选择创建E-R图


提取SQL导入
连接你的Mysql、MsSql、Sqlite等数据,针对你需要加入E-R图的表提取Create创建语句。
CREATE TABLE `DatabaseName` (
`Id` bigint(20) NOT NULL,
`VersionNo` bigint(20) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
在创建语句的基础上做一些修剪替换,其中关键的要点如下:
- 将主键挪到第一个,其他外键可以紧随在主键后面。
- 主键后面追加
PRIMARY KEY关键字,以便后续自动生成样式 - 追加
;以表示结束位置 - 留下所有的
NOT NULL标记,移除不必要的内容 - 仅保留字段名、字段类型、是否支持为空、注释信息
最终我们将得到一个规范后的格式,举例如下:
CREATE TABLE DatabaseName '数据表名'
(
Id bigint(20) NOT NULL PRIMARY KEY
VersionNo bigint(20) '版本号'
.....
);
在Draw.io中部菜单找到+号菜单,找到高级中的从SQL导入。

粘贴上一步得到的最终SQL语句到输入框中,可以同时填入多个表,只要有;号间隔结尾就行。


最终我们将看到几个带PK主键标记的图。
如果你没看到上图的PK样式,一定是因为主键你没追加
PRIMARY KEY标记
我们可以给他们全选设置字体、颜色等等。
同时,针对其中关联的外键,我们需要添加FK标记,并且将整行设置为斜线样式。
如下图所示,斜线行代表外键。

接下来,我们可以把有关系的外键和主键连接起来,并且可以设置两端的箭头样式。

完成这些,我们就基本上可以开始构建完整的全套E-R图了。
导出SVG
左上角-文件-导出为-SVG

建议设置一定的边框宽度,比如100,以便可以留下一些距离。

附录
关于使用Draw.io画数据库E-R图的说明的更多相关文章
- 教务管理系统数据库E/R图
- Umlet和draw.io 使用心得
文章目录 软件使用心得 1. Umlet 画图软件 1.1 前言 1.2 优点 1.3使用小trick 1.3.1 灵活改变箭头形式 1.3.2 整体复制 1.3.3 快速复制 2. draw.io ...
- 流程图软件draw.io
工作中经常需要梳理一些流程图,时序图.以前用微软Visio绘制流程图(当然不是正版Visio).后来为了响应国家号召,改用processon(proceson.com)进行绘制流程图.Processo ...
- 使用draw.io桌面版代替visio制作流程图
前言 draw.io是一款在github上的开源产品,由于需要构建在线文档,需要插入画图类型, 对比多款开源产品,最终选择了draw.io. draw.io图标资源非常的丰富,方便导入图标资源,基本上 ...
- achartengine画出动态折线图
achartengine画出动态折线图的效果最近有个项目需要用到实时曲线图,我也上网搜索了一下,最后还是选择使用achartengine这个现成的东西,毕竟自己再canvas一下实在是太麻烦,而且项目 ...
- 使用mermain用Markdown的语法画流程图和UML图
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用mermain用Markdown的语法画流程图和UML图.
- 在EA中将画出的ER图转换成SQL脚本
在进行数据库设计的时候,想着正好安装着EA软件呢,看能不能用EA画ER模型.结果发现不仅能画.并且还能进行整套数据库设计(生成SQL脚本). 以下以机房收费系统用户--学生为例.学生能够查看剩余金额. ...
- 为了拿捏 Redis 数据结构,我画了 40 张图(完整版)
大家好,我是小林. Redis 为什么那么快? 除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效的处理. ...
- Chartist.js-同时画柱状图和折线图
最近几天都在研究chartist,因为echarts生成的图是位图,导成PDF的时候不够清晰.而chartist是搜到的免费插件中呼声较高的,基于SVG. 今天主要是想举一些代码例子给大家,介绍下如何 ...
随机推荐
- [bug] Maven修改pom文件后jdk版本回退
参考 https://www.cnblogs.com/wxgblogs/p/6696229.html
- 佳能m62套机5500 佳能EOS M50 M6 MARK2 II二代 最低到过5800
佳能m62套机5500 佳能EOS M50 M6 MARK2 II二代
- 安装 Centos 7.x
学习 python 至今,一直是在 linux 上操作,感觉还是 linux 对 python 的支持更加友好,默认安装了 python 的版本 2 和 3 .为了打造更好的 python 开发环境, ...
- SPI总线 通俗易懂讲解——(转载)
SPI总线 MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI.SO.SCK.传输的速率由时钟信号SCK决定,SI为数据输入.SO为数据输出.采用SPI总线的系统如图8-27所示,它包含 ...
- GPIO模式用法
浮空,顾名思义就是浮在半空,输入直接与寄存器挂钩: 开漏,输出0的时候 PMOS管导通IO输出Vdd,输出1的时候 NMOS管导通IO输出Vss(Cmos场效应管): 推挽,输出时候电平确定,同样使用 ...
- Nginx下配置Https证书详细过程
一.Http与Https的区别HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...
- Mybatis 逆向工程使用(Day_17)
有三个方法可以解决所有的问题:接受,改变,离开.不能接受那就改变,不能改变,那就离开. [何为逆向工程?] 众 所 周 知 ,正向工程就是通过JAVA类的设置来生成对应的数据库表. MyBatis逆向 ...
- linux上传启动项目命令
使用Xshell 或其他远程链接登录工具登录服务器后 1.切换用户到root: sudo -i 账户密码 注意:可直接将jar包放入root用户目录下,避免有可能因为服务器文件夹权限设置导致在指定文件 ...
- TensorFlow Frontend前端
TensorFlow Frontend前端 TensorFlow前端有助于将TensorFlow模型导入TVM. Supported versions: 1.12 and below Tested m ...
- BERT模型的OneFlow实现
BERT模型的OneFlow实现 模型概述 BERT(Bidirectional Encoder Representations from Transformers)是NLP领域的一种预训练模型.本案 ...