背景简介

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

diagrams.net是用于构建图表应用程序的开源技术堆栈,也是世界上最广泛使用的基于浏览器的最终用户图表软件。

安装Draw.io

方式一,无需安装,在线使用

https://app.diagrams.net

方式二,安装桌面版,离线使用

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图的说明的更多相关文章

  1. 教务管理系统数据库E/R图

  2. Umlet和draw.io 使用心得

    文章目录 软件使用心得 1. Umlet 画图软件 1.1 前言 1.2 优点 1.3使用小trick 1.3.1 灵活改变箭头形式 1.3.2 整体复制 1.3.3 快速复制 2. draw.io ...

  3. 流程图软件draw.io

    工作中经常需要梳理一些流程图,时序图.以前用微软Visio绘制流程图(当然不是正版Visio).后来为了响应国家号召,改用processon(proceson.com)进行绘制流程图.Processo ...

  4. 使用draw.io桌面版代替visio制作流程图

    前言 draw.io是一款在github上的开源产品,由于需要构建在线文档,需要插入画图类型, 对比多款开源产品,最终选择了draw.io. draw.io图标资源非常的丰富,方便导入图标资源,基本上 ...

  5. achartengine画出动态折线图

    achartengine画出动态折线图的效果最近有个项目需要用到实时曲线图,我也上网搜索了一下,最后还是选择使用achartengine这个现成的东西,毕竟自己再canvas一下实在是太麻烦,而且项目 ...

  6. 使用mermain用Markdown的语法画流程图和UML图

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用mermain用Markdown的语法画流程图和UML图.

  7. 在EA中将画出的ER图转换成SQL脚本

    在进行数据库设计的时候,想着正好安装着EA软件呢,看能不能用EA画ER模型.结果发现不仅能画.并且还能进行整套数据库设计(生成SQL脚本). 以下以机房收费系统用户--学生为例.学生能够查看剩余金额. ...

  8. 为了拿捏 Redis 数据结构,我画了 40 张图(完整版)

    大家好,我是小林. Redis 为什么那么快? 除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效的处理. ...

  9. Chartist.js-同时画柱状图和折线图

    最近几天都在研究chartist,因为echarts生成的图是位图,导成PDF的时候不够清晰.而chartist是搜到的免费插件中呼声较高的,基于SVG. 今天主要是想举一些代码例子给大家,介绍下如何 ...

随机推荐

  1. MSSQL·最长输出长度限制之解决方案

    阅文时长 | 0.11分钟 字数统计 | 234.4字符 主要内容 | 1.引言&背景 2.声明与参考资料 原文『MSSQL·最长输出长度限制之解决方案』 编写人 | SCscHero 编写时 ...

  2. 白日梦的MySQL专题(第33篇):各种登陆MySQL的骚操作

    阅读原文 系列文章公众号首发,点击阅读原文 前置知识 我们想登陆到mysql中前提是肯定需要一个用户名和密码:比如 mysql -uroot -proot 在mysql中用户的信息会存放在 mysql ...

  3. Spring Boot 允许跨域设置失败的问题深究

    在公司开发过程中,一个前后端分离的项目遇见了跨域的问题. 前端控制台报错:No 'Access-Control-Allow-Origin' header is present on the reque ...

  4. [刷题] 220 Contains Duplicate III

    要求 给出整型数组nums和整数k,是否存在索引i和j 使得nums[i]和nums[j]之差不超过t,且i和j之差不超过k 思路 建立k个元素的有序查找表 每次有新元素加入,寻找查找表中大于 num ...

  5. 【转载】spice 有截图

    https://segmentfault.com/a/1190000011991047

  6. ip_conntrack or nf_conntrack : table full, dropping packet

    nf_conntrack: table full, dropping packet ip_conntrack or nf_conntrack : table full, dropping packet ...

  7. 2.Python入门-计算机组成、指令和程序、标识符、变量、数据类型、对象和变量关系、运算符

    一.计算机的组成 计算机由两部分组成:硬件 和 软件 硬件包含:键盘.鼠标.显示器.CPU.主板.内存.硬盘 ... -硬件是看的见摸得着的 软件包含:系统软件(windows.macOS.Linux ...

  8. 电压笔DIY

    电压逻辑笔 http://www.cirmall.com/circuit/2279/detail?3#/details http://www.cirmall.com/circuit/7543/CD45 ...

  9. python3 smtplib发送邮件

    使用smtp包发送邮件还依赖email的一些方法 发送邮件主要分为三步: 1,定义邮箱参数:邮箱服务器地址,邮箱用户名,邮箱密码,邮件发送方,邮件接收方,邮件标题,邮件内容 2,配置发送内容 3,实例 ...

  10. (数据科学学习手札123)Python+Dash快速web应用开发——部署发布篇

    1 简介 这是我的系列教程Python+Dash快速web应用开发的第二十期,在上一期中我介绍了利用内网穿透的方式,将任何可以联网的电脑作为"服务器"向外临时发布你的Dash应用. ...