当有新的业务系统研制需求,需要理解并刨析项目中的数据和数据关系。思在脑里终觉虚,还需落到纸面来。在需求分析阶段,我们可以用ER图来可视化地帮助我们理清这些数据及关系。
E-R图也称实体-联系图(Entity Relationship Diagram),是描述现实世界关系概念模型的有效方法。
构成E-R图的3个基本要素是实体型、属性和联系。用于描述数据库的ER图的样子如下所示:
图片 dbeaver的ER图
图片 Navivat的ER图
先来梳理一下ER图在分析设计或数据库管理中的作用,再选择合适易用的工具。
1 需求分析阶段,还没有开始创建库表:绘制ER图
2 创建库表阶段:一种是设计好了ER图,直接生成库表或库表创建语句;另一种是使用可视化工具建表中(不擅长写sql语句,但会用plsql等工具设置字段等以后建表),基于已有库表生成ER图来检查工作。
3 检验阶段:生成ER图,检查库表是否存在设计问题
从使用角度来讲,ER图与数据库结构应该是对应的,那么应该存在双向的转换:从ER图生成数据库结构,从数据库结构导出ER图。
绘制ER图的工具有很多,不考虑基于ER图创建数据库语句的情况下,很容易找到各种专业/非专业的软件来实现。
生成ER图的工具,多数数据库软件都支持。
重要的是能从ER图生成数据库建表语句,以及绘制用于创建语句的ER图的工具。这个不是免费版软件都能提供的。
Navicat、PDMan、DBeaver三者ER图比较_꧁༺摩༒西༻꧂的博客-CSDN博客_pdman画er图
找了几种能借助ER进行数据库开发的工具:
1 navicat商用版:十分好用,界面美观,效率高。但是如果在网上找资源往往报毒,如果能用navicat就用navicat吧。
2 workbench社区版(只用于Mysql):看有人说商用版才支持模型同步数据库。用了下现在的社区版,应该也是可以做到的。database->reverse engineer 可生成已有库表的ER图(是生成model界面,同时在model界面生成相应ER图)。model/ER界面上只能拷贝单个模式/单张表对应的sql语句,而在file->export->forward Engineer可导出model整体对应的sql创建脚本(create table if not exists ...,该流程可保存到文件或剪贴板),database->forward engineer应该是同步到库(也是生成脚本,该流程可以直接为你执行到库)。
不用逆向工程生成ER,而根据需求来设计库表时:
_在主界面上file->new model创建空白的模型设计页面,model->new diagram可创建空白ER图;
_在model中设计表,model->create ...from...可基于model里的表/视图等直接生成对应ER图;
_ER图界面上可从左侧列表里已有的表(model里的表而非库中物理存在的表)拖拽到图上展示,可以对展示的表进行编辑;
_当在ER界面创建表,会同步体现在model界面上。
MySQL Workbench对数据库进行逆向工的操作教程-太平洋电脑网
MYSQL Identifying relationship 和non-Identifying relationship 区别 - 简书
3 powerdesigner(收费):也支持双向操作
4 PDMan :不方便用Navicat可以考虑这款。一款国人开发的开源软件,功能简洁上手非常容易,支持多种操作系统,目前系统默认实现了MySQL,Oracle,Java的代码自动生成,而且还都带上了注释。另外数据库模型版本管理功能,可以将版本变动内容单独记录,并直接生成DDL语句。再见!PowerDesigner_51CTO博客_再见少年
Pdman数据库建模工具——使用教程_ywm_up的博客-CSDN博客_pdman使用教程
其他支持ER生成的软件:
DBeaver(开源,需jdk,java能连的库它都能连,包括达梦,还能生成模拟数据,支持库表比对生成详细的比较结果)DBeaver一款替代Navicat的数据库可视化工具_数据库其它_脚本之家
DataGrip(IdeaIJ)免费的数据库管理工具最好用的是什么? - 知乎