DDL 转 ER 图

粘贴 CREATE TABLE 建表语句,自动解析表与外键,绘制可导出的数据库关系图

拿到一堆建表语句想看表关系,开数据库设计器太重。本工具在浏览器内解析 MySQL / PostgreSQL 风格的 CREATE TABLE DDL:识别表、列、主键与 FOREIGN KEY ... REFERENCES 外键关系,自绘 SVG 关系图(表框 + 1:N 连线,可横向滚动),支持导出 PNG 与复制 mermaid erDiagram 文本。全程本地解析,DDL 不会上传。

粘贴 DDL

  • 外键 order_items.product_id 引用的表「products」不在本段 DDL 中,连线已跳过
3 张表 2 条外键

mermaid erDiagram 文本

erDiagram
    users {
        BIGINT id PK
        VARCHAR_64_ username
        VARCHAR_128_ email
        DATETIME created_at
    }
    orders {
        BIGINT id PK
        BIGINT user_id FK
        DECIMAL_10__2_ amount
        VARCHAR_16_ status
    }
    order_items {
        BIGINT id PK
        BIGINT order_id FK
        BIGINT product_id FK
        INT quantity
    }
    users ||--o{ orders : "user_id"
    orders ||--o{ order_items : "order_id"

粘贴到 GitHub README、mermaid.live 或任意支持 mermaid 的笔记软件即可渲染。

ER 关系图(自绘 SVG)

1Nuser_id→id1Norder_id→idusersPK id BIGINT username VARCHAR(64) email VARCHAR(128) created_at DATETIMEordersPK id BIGINTFK user_id BIGINT amount DECIMAL(10, 2) status VARCHAR(16)order_itemsPK id BIGINTFK order_id BIGINTFK product_id BIGINT quantity INT

图例:蓝 PK 主键列,橙 FK 外键列;连线 N 端为子表(外键所在表),1 端为父表。区域过大时可横向滚动,导出 PNG 为完整画布。

#关于 DDL 转 ER 图

ER 图(实体关系图)把数据库表画成带列清单的方框,用连线表示外键形成的一对多关系。比起打开重量级数据库设计器,直接解析建表语句是评审 schema、写文档、交接项目时更快的方式。本工具在浏览器里完成解析与绘图:先剥离字符串字面量避免 DEFAULT 'a,b(c)' 之类内容干扰括号配对,再按顶层逗号切分每个列定义与约束。

支持哪些 DDL 写法

表级约束 FOREIGN KEY (col) REFERENCES other(col)、带 CONSTRAINT 名字 前缀的外键、列内联写法 col INT REFERENCES other(id) 都能识别;表级与列级 PRIMARY KEY 均会标注。反引号、双引号、schema 前缀(db.table)自动清理。注意:外键指向的父表必须也在同一段 DDL 里出现,否则连线会被跳过并提示。

关系连线怎么读

本工具采用简化记法:连线从子表(持有外键的表,N 端)连向父表(被引用的表,1 端),线上标注「子列 → 父列」。标准 crow foot 鸦爪符号中,父端是「一」、子端是「多」,等价于数据库外键约束本身表达的基数——一个用户可以有多条订单,但订单上的 user_id 只能指向一个用户。多对多中间表会呈现为指向两张父表的两条 1:N 连线。

mermaid 文本怎么用

mermaid 的 erDiagram 是 GitHub、GitLab、Notion、Obsidian 等都认识的图表语法。本工具把解析结果同步导出成 users ||--o{ orders : "user_id" 形式的关系行与列定义块,复制进 Markdown 代码块即可随文档渲染,免去截图维护问题;图需要改动时重新粘贴 DDL 生成即可。

常见问题

  • DDL 里有存储过程或 INSERT 会报错吗?不会崩溃,解析器只扫描 CREATE TABLE 块,其余语句直接忽略;括号不配对等结构问题会在提示区列明。
  • 导出 PNG 模糊?导出按 2 倍分辨率绘制画布,正常缩放足够清晰;表数量很多时建议改用 mermaid 文本在目标平台矢量渲染。
  • 线上数据库的真实关系图不全?很多项目(尤其早期 MySQL MyISAM 时代)没有物理外键,只在应用层维护关系,这类 DDL 解析出的边会偏少,可先补全 FOREIGN KEY 定义再粘贴。

相关工具推荐

Spine动画编辑器

专业的Spine动画预览和编辑工具,支持多引擎导出

热门 新品 本地

SQL查询优化器

分析SQL查询并提供优化建议

热门 新品 本地

JVM启动参数配置

可视化配置Java虚拟机启动参数,支持内存、GC、性能等选项

热门 新品 本地

代码片段转换

不同编程语言间代码片段转换(如Python↔JavaScript)

热门 新品 本地

IP地址查询

查询IP地址的地理位置、运营商、ASN等信息,支持IPv4和IPv6

热门 新品 本地

JSON转TypeScript接口

根据JSON数据自动生成TypeScript类型定义

热门 新品 本地

相关教程