前言

不知道大家是不是和我一样,为了追求速度,开发时一般都是直接建表就干,哪管什么E-R图。直到xxx项目找上你,某某客户要E-R图,提供一下吧。这时候就很烦,从头绘制E-R图成本真的很高,今天我就遇到了这个糟心事。

那有什么办法快速从我们的DDL建表语句直接反向生成我们的E-R图呢?如何做到即便新版本表结构发生变化,也能够在原来的基础上做简单增量修改即可满足呢?本文就介绍一种基于draw.io绘制E-R图的办法,真的很好用。

安装draw.io

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

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

在线地址:https://app.diagrams.net

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

下载地址:https://github.com/jgraph/drawio-desktop/releases

  1. 方式三,VSC插件

Visual Studio Code里面左侧菜单扩展项搜索关键词draw.io即可

我这边使用本地的离线客户端方式进行演示。

创建E-R图

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

  1. 新建,选择E-R图

  1. 导入DDL建表语句

在创建语句的基础上做一些修剪替换,其中关键的要点如下:

  • 将主键挪到第一个,其他外键可以紧随在主键后面。
  • 主键后面追加PRIMARY KEY关键字,以便后续自动生成样式
  • 追加;以表示结束位置
  • 留下所有的NOT NULL标记,移除不必要的内容
  • 仅保留字段名、字段类型、是否支持为空、注释信息

点击插入以后,得到下面的图:

  1. 建立表的关联关系

我们跟进实际的表结构关系建立两个表之间的关系,如下图所示:

你还可以随意修改图表的样式:

这样一个简单的E-R图就画好了,是不是很简单呢。

保存为可编辑位图文件

这里有个很关键的一个步骤,我们要保存我们的E-R图,切记一定要保存成可编辑位图文件(.png) 的格式,如下图所示:

为什么要保存成这个格式呢?

这样我们保存好的E-R图发给其他人或者黏贴到文档后,如果需要修改,重新保存或者下载下来,再次用draw.io打开,又能够继续编辑了,就很方便做到可复用、可更新。简单来说,你保存下来的不简简单单是一张png图片,而是可以再次被draw.io编辑的图片。

总结

draw.io真的是一个非常好用的图形绘制软件,不仅仅是E-R图,绘制其他的架构图、流程图都十分专业且方便,值得推荐一波。不知道大家有没有其他绘制E-R图更好的方式,可以分享一下。

作者:JAVA旭阳
链接:https://juejin.cn/post/7212912988533407804

很强,我终于找到绘制E-R图的正确姿势!相关推荐

  1. 使用R语言的正确姿势,R包干货奉献

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.在线绘图.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞 ...

  2. 绘制E—R图(详细)

    ER图的实体(entity)即数据模型中的数据对象,例如人.学生.音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity in ...

  3. 手机1像素线粗_iOS绘制1像素线的正确姿势

    一.前言 事情的起因是这样的,因为需求的原因,有一个页面的cell分割线需要自定义,于是我的同事很顺其自然地用了个view,并将其高度设为1,来作为cell分割线使用.一切看起来都那么平静,直到有一天 ...

  4. 清理C盘(浪费了很多时间,终于找到了一个比较高效的方法)

    之前由于仗着C盘空间大,任性的往上面装了很多软件(200G). 终于在昨天,C盘飘红了!!!哭唧唧 本来用360的磁盘清理器清理了一下午,以为终于能多点儿空间,结果他妹的越清空间越小,最后直接给我清到 ...

  5. python绘制三维矢量图_【知乎专栏】让你的论文图表更sexy

    原标题:[知乎专栏]让你的论文图表更sexy 有些同学在写论文的时候光注意文字的阐述,忽略掉了一个重要因素--图表.插入的图表不仅无意义,有时候甚至造成图表影响了文章内容表达.下面干货满满,十分钟教你 ...

  6. 安卓手机突然很卡_为什么你的安卓手机越用越卡,真是内存不够?终于找到原因了!...

    为什么你的安卓手机越用越卡,真是内存不够?终于找到原因了! 现在在手机市场里基本上是被两个系统瓜分了市场,一个是苹果手机的iOS系统,一个是国产手机的安卓系统.在以前很多用户会选择使用苹果手机,因为苹 ...

  7. 看上去很强但实际上没什么卵用的网络摄像头教程

    1 笔者一直信奉这样一句话: 没有什么事是理所当然的. 最近两周的经历再次验证了这句话.故事还得从一张图片说起- 某日,笔者走在街上,看到路边躺着一只猫猫,腿就像灌了铅似的迈不动了,兴奋地搓了搓小手手 ...

  8. r语言绘制精美pcoa图_R语言绘制交互式热图

    热图 通过热图可以简单地聚合大量数据,并使用一种渐进的色带来优雅地表现,最终效果一般优于离散点的直接显示,可以很直观地展现空间数据的疏密程度或频率高低.但也由于很直观,热图在数据表现的准确性并不能保证 ...

  9. 高中上不上分数低学计算机,为什么到了高中,你的学习越来越差,越补越差?终于找到原因了...

    原标题:为什么到了高中,你的学习越来越差,越补越差?终于找到原因了 小学初中成绩好,高中学习认真,也不贪玩,但是成绩一直中下游,找家教也不管用,这种情况在高中是非常普遍的一个现象,我将从四个方面进行解 ...

最新文章

  1. Vue:Vue和ECharts,在Vue上进行可视化处理,在Vue上画图
  2. ListView, GirldList 等setCurrentItem 不立即刷新
  3. 聊聊flink的CsvTableSink
  4. Poj_3984走迷宫(广搜)
  5. PHP上传图片到数据库,并进行显示
  6. 实现机器学习的循序渐进指南II——决策树
  7. 阿里云-CentOS7安装Vsftpd
  8. 《编程珠玑》读解 一
  9. redis是干什么的
  10. 01、3dB双分支定向耦合器
  11. Unity3D 的LookAt() 与 LookRotation()方法的比较
  12. pdf中添加声音 java_PDF怎么添加音频?你不能错过的PDF编辑器办公软件
  13. web前端埋点及数据上报
  14. uni-app animation动画
  15. 在Clojure For The Brave And True中遇到的emacs配置问题
  16. JDO及相关资源介绍
  17. Linux修改主机名
  18. Phaser3之 anims
  19. 《Ted:记忆的虚构》——Elizabeth Loftus(有感)
  20. ios无法播放安卓视频的问题

热门文章

  1. 【速卖通代运营】2022跨境电商怎么做?速卖通今年重点要做三件事
  2. java 签名算法rfc3986_RFC 3986 URI的结构
  3. CSS scoped和module
  4. C++ 构造函数和析构函数
  5. redis 集合排重_使用Redis的有序集合实现排行榜功能
  6. html实现经典赛车小游戏
  7. ubuntu 查看显卡版本
  8. java单元测试如何全覆盖_单元测试代码覆盖率的浅谈
  9. C语言中函数的定义举例说明,C语言函数的定义与使用
  10. JSP的组成元素——转自l_dongdong