DiagramPreview
高级预览Live previewExportDeveloper tool

DBML 转 ER 图

DBML 适合用文本描述数据模型。在线预览可以让团队在发布文档或迁移前讨论表关系、基数和数据 ownership。

示例
预览结果就绪
预览结果会显示在这里。

下一步可以继续

把当前预览结果带到相关工具里继续转换、排查或导出。

使用方法

  1. 1粘贴 DBML 表、字段、enum 和 Ref 定义。
  2. 2检查一对一、一对多、多对多关系是否清楚。
  3. 3关注 nullable 字段、唯一约束、租户边界和软删除模式。
  4. 4把 DBML 源码和导出图一起放入模型文档。

常见场景

数据库建模 review产品数据模型讨论DBML 文档预览ER 图导出多租户数据边界

常见问题

DBML 和 SQL 哪个更适合文档?

DBML 更简洁,适合数据模型文档和讨论;SQL 更贴近真实数据库迁移。两者可以配合使用。

可以表示多对多关系吗?

可以,通常通过 join table 和两个 Ref 表示,多对多的业务规则应在注释里写清楚。

ER 图会显示所有约束吗?

可视化重点是结构和关系,复杂索引、触发器和数据库特性仍需要在文档或迁移脚本中 review。

DBML 适合产品团队看吗?

适合。它能把 entity ownership、租户边界和主要关系展示出来,比只看 SQL 更容易讨论。

DBML 转 ER 图 面向开发者文档、AI 生成图表校验和工程配置可视化场景。

它可以帮助你把文本源、配置或 AI 输出转换成更容易检查和导出的结果。

Demo:用 DBML 表达会员关系

DBML 很适合把产品关系写成可读文本,再生成 ER 图供开发和产品一起 review。

  • join table 应明确唯一性。
  • role、status 这类枚举应靠近关系表。
  • 租户或组织边界要在图里可见。
Table users { id int [pk] }
Table orgs { id int [pk] }
Table memberships { user_id int org_id int role varchar }
Ref: memberships.user_id > users.id
Ref: memberships.org_id > orgs.id

基数 review:让关系规则可讨论

ER 图应帮助 reviewer 讨论一对一、一对多、多对多,以及表设计是否支持真实产品规则。

  • 查找缺少唯一约束的 join table。
  • 检查 nullable refs 是否真的代表可选关系。
  • 为软删除和租户边界写注释。
Table memberships { user_id int org_id int role varchar }
Indexes { (user_id, org_id) [unique] }

产品 review:让数据 ownership 可见

DBML 图不只给数据库工程师看。它能帮助产品和平台团队看到哪个 entity 拥有什么关系,以及账号或 workspace 边界在哪里。

  • 把 account、organization、workspace 表放在依赖表附近。
  • 标出跨产品域共享的表。
  • 审计日志和软删除模式要在 notes 中说明。
Table accounts { id int [pk] }
Table projects { id int [pk] account_id int }
Ref: projects.account_id > accounts.id

DBML 转 ER 图 检查清单

当你需要在文档、PR、故障复盘或交接材料发布前检查源码内容时,可以使用 DBML 转 ER 图。把 DBML schema 转成 ER 图,检查表关系、枚举、注释和基数。

导出前建议检查标签是否可读、关系是否和源码一致、示例是否包含敏感信息,以及修改输入后预览是否仍然成立。

限制与排查

如果预览失败,先把输入缩小到最小完整示例,确认格式语法,再逐段加回内容。很多失败来自不完整文件、缩进错误、缺少图表头,或复制了依赖隐藏上下文的片段。

请把预览结果当作 review 界面,而不是生产事实来源。生成的图表、转换文件、看板和规则示例在进入正式文档或运维流程前仍需要人工确认。

可测试的示例输入

  • Commerce: Table users { id int [pk] email varchar } Table orders { id int [pk] user_id int } Ref: orders.user_id > users.id
  • Blog: Table authors { id int [pk] name varchar } Table posts { id int [pk] author_id int title varchar } Ref: posts.author_id > authors.id
  • SaaS: Table accounts { id int [pk] name varchar } Table members { id int [pk] account_id int email varchar } Ref: members.account_id > accounts.id

工具完成度

高级预览

高级解析

这个工具会从开发者输入中提取结构和关系,适合调试与文档 review;复杂边界仍建议回到源码确认。

分级不是质量打分,而是告诉用户当前工具更适合稳定导出、深度调试、快速解析,还是 AI 辅助生成。