MySQL Workbench 作为 MySQL 官方出品的数据库 GUI 管理工具,它的强大是其他免费管理工具无法匹敌的。特别是使用 MySQL Workbench 设计数据库,创建及同步 ER 图(实体关系图)的功能甚是强大。
MySQL Workbench 不仅可以直接在软件中设计数据库 ER 实体关系图,而且还可以直接通过这个实体关系图,自动创建 MySQL 数据库(正向工程),也可以反过来,通过已有的 MySQL 数据库,生成 ER 图(逆向工程),当然,更厉害的地方是,可以在 MySQL ER 图上直接修改,MySQL 数据库会自动同步更新(模式同步)。
一、如何逆向MySQL数据库ER图
- 选择逆向,点击 Next

- 在 MySQL Workbench 主界面的菜单栏选择「Database」→ 「Reverse Engineer…」
连接需要通过 MySQL Workbench 直接生成 ER 图的数据库。(有关如何远程连接的教程可看我们前一篇教程:如何使用Workbench连接到MySQL)

- 完成数据库连接,点击 Next

- 选择需要逆向的数据库,点击 Next

- 选择需要逆向的表,点击 Execute

- 逆向完成

到这里,我们已经可以看到, MySQL Workbench 将我们选中的数据库生成了对应的 ER 图。
- Diagram命名

- 保存


二、如何使用模式同步功能,同步本地ER图与MySQL数据库
模式同步是指 MySQL Workbench 会比较 ERD 和 物理数据库中模式结构的差异,针对这个差异进行双向同步。也就是说,当我们在 ER 图上创建一个新表并配置好表属性后,我们的物理数据库中也将同步更新。
1、在ER图中创建新表

点击创建表功能,进入数据库表配置页。
我们可以直接在 ER 图上创建一个新表 oss_app,然后对这个新表进行基本的配置。
Workbench 会在画布上生成一个对应的数据库表。
这时候,创建的表仅显示在本地画布上,下面我们要把这个新建表同步到远端 MySQL 服务器上。
2、将更新后的ER图同步至物理数据库
- 接着我们将刚刚在 ER 图上画的 oss_app 这个表同步到物理数据库中。选择「Database」→「Synchronize Model」 进入同步配置页。

- 连接需要同步的远程数据库服务器(如果这里你不会配置,请看我们之前的教程Workbench连接到MySQL)

- 连接到远程 MySQL 服务器后,选择需要同步的远端数据库。

- Workbench 会根据两边的数据提示你数据同步方向,当然你也可以选择反向同步或者忽略差异。


- 一切确认后,Workbench 会帮你写好 SQL 代码,检查无误后就可以提交了。

同步成功,此时本地 ER 图和远程 MySQL 数据库,数据结构保持一致。
三、如何导出ER图与远程协同工作
Workbench 提供多种格式的导出方式,不仅可以导出数据库模型(*.mwb)也可以导出可视化的图片文件(pdf、png)等。
如果使用 *.mwb 格式保存,可将文件共享给需要协同的同事,他可在你的基础上继续对数据库进行编辑,以及 sync 修改数据库结构。
当然我们也可以直接保存为 png 格式,不论是自己查看还是共享给协同工作的同事,都是非常好的数据库查询资料。
- 直接导出 PNG 格式

四、如何增加外键
