DBeaver 数据模型设计完整指南:一张 ER 图三步走到建表脚本
【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver
ERD(Entity-Relationship Diagram,实体关系图)是数据库建模的通用语言:表是实体,字段是属性,主外键决定实体之间连什么线。DBeaver 内置的 ERD 编辑器就是一套能"画图"也能"落地"的数据库建模工具:你在画布上搭出实体、属性和关系,画完可以直接生成 DDL(数据定义语言)脚本、把变更同步进数据库,或者导出成图片和源文件。读完本文,你能独立完成一次 DBeaver 数据模型设计:为一个类似"客户—订单—订单项"的业务画 ER 图,调整布局样式,并产出可执行的建表脚本。
怎么打开 ERD 编辑器
画布有三种进入方式,按需选用:
- 右键菜单:在导航树中右键点击一张表或一个模式(schema),选择"查看图表",选中对象会直接铺到画布上
- 新建向导:File → New → ER Diagram,得到一张空白画布,从零开始搭概念模型
- 快捷键:选中表或容器后按
Ctrl+Shift+Enter,这是使用频率最高的一条路径
嵌入式查看和独立画布有什么区别
"查看图表"打开的是嵌入式编辑器,以标签页形式嵌在数据浏览里,适合只读查看现有表结构。而"新建"出来的是一张独立的.erd画布,可编辑、可保存、可重新打开,适合从概念模型一路改到物理落地。两种形态的入口和编辑器类分别注册在 ERD UI 模块 的插件定义里。
实体、属性和外键关系怎么画
概念模型的核心动作就三个:建实体、补属性、连关系。
建实体:点工具栏的"实体"按钮后在画布上点击,即生成一个新实体框;也可以直接把导航树里的表拖进画布。双击实体名改成业务名称,比如customer、order、order_item。
补属性:右键实体选择"添加属性",逐项填写名称、类型,勾选主键或非空。主键属性在图上会有明显标记。属性对应数据库表的列,这一步相当于在纸上写列定义。
连关系:切换"关系"工具,从父实体的主键按住拖到子实体的外键属性上松开,一条关系线就建立了。关系的多端少端(一对一、一对多)由两端的主外键约束推断,不需要手工指定基数。
如果团队对图形的画法有约定,可在设置里切换两种标注风格:IDEF1X 和 Crow's Foot(鸦爪),二者只是表达方式不同,模型本身不变,切换逻辑实现在 ERD 插件声明 中。图形的数据模型(实体、属性、逻辑关系)由独立的 ERD 模型核心 负责,UI 只负责绘制和交互,这层分离意味着图可以序列化成文件。
布局乱了怎么救:自动排列与样式
画到十几张表以后,线条交叉、实体重叠是常态,DBeaver 提供了几件收拾工具:
- 全部排列:点工具栏的"排列所有",所有实体按有向图布局算法重新排布,关系线走最短路径,一张乱图几秒变整齐
- 排列选中:只框选局部若干实体再排列,不动其他区域
- 网格:打开网格图层作为对齐辅助,手动微调实体位置时吸附到格点
- 抓手工具:按
Tab切换到抓手模式平移大画布,避免滚动条来回拖动
样式方面,首选项中的 ERD 主题分类里可以改实体表头底色、属性区文字与背景色、关系线颜色、注释框配色和整体字号,浅色深色主题各有一套变量。改完即时生效,适合给不同模块的实体分区着色,方便评审时快速定位。
一键生成 DDL:从画布到建表脚本
画布上的模型是逻辑视图,要落到物理库有两条路。
路径一:生成脚本。右键画布或实体,选择生成 DDL,在弹出的 SQL 编辑器中拿到完整脚本,包含建表、主键、外键语句。例如三实体订单模型生成的大致结果:
CREATE TABLE "order" ( id BIGINT NOT NULL, customer_id BIGINT NOT NULL, create_time TIMESTAMP, CONSTRAINT pk_order PRIMARY KEY (id) );脚本可以先在 SQL 编辑器里审查、修改,再决定执行与否,适合要留档或跨库迁移的场景。
路径二:直接同步。如果画布挂在某个已连接的数据库上,确认模型与库内现状的差异后应用变更,DBeaver 会按差异执行必要的 CREATE / ALTER 语句,省去手写增量脚本。首次同步建议先在测试库跑一遍,确认外键约束顺序(先建被引用表)没有遗漏。
注释和导出:把设计成果保存下来
模型画完,成果有三种保存形态:
- 注释:用注释工具在画布角落放便签,记录设计决策、待定问题(比如"订单号要不要加分布式前缀")。注释是画布元素的一部分,随图保存,评审时不用另外维护文档
- 图片:导出 PNG、GIF、BMP,适合贴进设计评审文档或聊天窗口
- 源文件:保存为
.erd文件后可随时重开继续编辑;另支持 GraphML 格式,方便接入其他图分析工具
导出格式的注册清单同样在 ERD 插件声明 中,扩展机制允许插件追加新的导出格式。
落地实践建议
第一次用 DBeaver 做数据模型设计,按这几个具体动作来:
- 先只画最核心的三张表(如客户、订单、订单项),主外键关系连通后再往两侧扩,不要一次拖入全部表
- 连线完成后跑一次"全部排列",再开网格手动微调关键区域,最后导出 PNG 自查一遍可读性
- 画布保存为
.erd文件放进项目目录,随代码一起做版本控制,设计变更可追溯 - 生成 DDL 后先在 SQL 编辑器通读脚本,确认主键、非空、外键与预期一致,再执行到数据库
- 面对已有库时,先用"查看图表"做逆向查看,看清现状再决定补哪些逻辑关系
想继续深入 ERD 的扩展点(标注风格、连线路由、导出格式),可参考 官方开发文档 和各插件源码。
【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考