让 AI 真正参与数据库设计:EZDML MCP,把一句需求变成可审查的数据模型
过去,我们让 AI 帮忙设计数据库,往往会得到一大段 SQL。
它看起来很完整,却很难回答几个关键问题:这些表真的已经进入设计工具了吗?外键是否有效?有没有覆盖已有结构?多人同时修改时会不会冲突?如果结果不满意,能不能安全撤销?
这正是 EZDML MCP 想解决的问题。

EZDML MCP 将数据库建模能力通过 Model Context Protocol 提供给 AI。AI 不再只是“建议你怎么建表”,而是可以在 EZDML 中读取现有模型、理解对象关系、提出修改方案、展示差异、执行变更、自动布局并完成校验。整个过程保留 revision、preview、checkpoint 和历史记录,让 AI 从聊天窗口里的 SQL 生成器,变成真正参与建模工作的工程助手。
从“生成 SQL”到“完成设计闭环”
传统的 AI 建库流程通常是:描述需求,生成 DDL,人工复制执行。模型与 SQL 很快就会分离,后续修改也难以追踪。
EZDML MCP 提供的是另一条路径:
读取当前模型
-> 理解表、字段和关系
-> 生成设计方案
-> Preview 查看差异与风险
-> Apply 原子应用
-> 自动布局与校验
-> 保存、生成 SQL 或代码
这条链路的重点不只是“自动”,而是“可控”。AI 的每次写入都基于当前 revision;模型发生变化时,旧操作会因冲突而停止。批量变更先在内存副本中执行,只有 preview 通过后才会正式应用。提交前自动生成完整历史 checkpoint,任何一步失败都不会留下半套表结构。
AI 可以通过 EZDML MCP 做什么
1. 读懂现有数据模型
AI 可以读取当前文件、模型图、逻辑表、字段、索引、外键和布局,也可以使用 EZDML 特有的 Describe 描述字快速理解大型模型。
Describe 是一种接近 Markdown 的表结构表达方式。它比数据库方言相关的 DDL 更紧凑,也更适合人与 AI 一起审阅:
mes_work_order(生产工单)
-------------------------------------
work_order_id(工单ID) PKInteger
product_id(产品ID) FKInteger //<<Relation:mes_material.material_id>>
plan_qty(计划数量) Float(18,6)
status(工单状态) String(20)
模型不再是一堆难以完整放进上下文的 JSON,而是一份人和机器都容易理解的设计语言。
2. 安全地创建和修改模型
EZDML MCP 支持模型、表、字段和图形实例的完整操作,包括:
- 创建、修改和删除模型图;
- 创建逻辑表,或把已有逻辑表 attach 到另一个模型图;
- 新增、重命名、修改、删除和重排字段;
- 设置主键、外键、唯一索引、普通索引和复合索引;
- 批量 changeset preview/apply;
- Describe 文本 preview/apply。
跨模型出现的同名表仍是同一个逻辑对象。业务字段会保持同步,而每张模型图可以拥有独立布局。这让“基础权限模型”“业务模型”“报表模型”等视图可以共享真实表定义,不必复制出多套逐渐失控的结构。
3. 自动梳理关系和模型图
创建几十张表并不难,难的是让它们最终成为一张可读的关系图。
EZDML MCP 可以查询表的出入关系、多对多关系和弱关联,并调用 EZDML 的网状、流式或网格布局算法。网状布局会根据外键关联权重展开对象并生成连线路由,相关表还可以自动着色。
AI 完成建表后,无需把一堆重叠的方框留给用户收拾。
4. 校验、历史与撤销
模型变更完成后,EZDML MCP 可以检查:
- 模型、表和字段名称是否重复;
- 字段类型、长度和精度是否合法;
- 外键目标表和目标字段是否存在;
- 复合索引字段是否完整;
- 删除或重命名是否产生悬空引用。
每次正式写入都会生成历史 checkpoint。用户可以查看历史版本、预览差异、恢复旧版本,也可以撤销最近一次 MCP changeset。AI 做得再快,也不应该拿数据模型去赌运气——能预览、能回滚,才是工程工具与演示脚本的分界线。
5. 连接真实数据库
在建立数据库连接后,EZDML MCP 还可以:
- 查询数据库、用户或 Schema;
- 列出并检查数据库对象;
- 批量逆向工程现有表;
- 比较模型与数据库,生成增量同步 SQL;
- 生成单表 DDL、DROP、查询和测试数据 SQL;
- 执行受确认保护的 SQL;
- 运行受行数限制的只读查询。
模型设计、数据库现状和升级脚本由此进入同一个工作流。需要特别强调的是:生成 SQL 与执行 SQL 是两件事。EZDML MCP 默认保留这条边界,真正修改外部数据库必须得到明确确认。
6. 从模型继续生成代码
EZDML 原有的 JavaScript、PascalScript 和代码模板能力也可以通过 MCP 使用。AI 能够查询可用模板,选择指定表批量生成代码,并获取生成日志。
这意味着工作并不止于 ER 图:经过校验的数据模型可以继续驱动 Java、C#、Pascal、前端页面、接口模型或企业自定义模板。团队仍然掌握模板和工程规范,AI 负责把重复操作串成流程。
一个真实案例:在若依模型上设计 MES
我们刚刚使用 EZDML MCP / OpenCode / DeepSeek 完成了一次完整操作:
-
开启EZDML MCP服务:

-
创建测试项目ezmcptest,并配置EZDML MCP服务地址;

-
从 EZDML 官方在线示例中查找并加载若依数据模型进行扩展设计;
- 一句话需求:请在EZDML中打开在线示例Ruoyi模型文档,以若依的组织用户角色权限为基础,新建MES模型,设计一个生产制造管理的数据表结构

- 一句话需求:请在EZDML中打开在线示例Ruoyi模型文档,以若依的组织用户角色权限为基础,新建MES模型,设计一个生产制造管理的数据表结构
-
保留若依原有的部门、用户、岗位、角色和菜单权限结构;

-
新建MES模型,attach 4 张若依基础权限表;

-
一次性加入 16 张 MES 核心表,覆盖工位、物料、BOM、工艺路线、工序、工单、派工、报工、设备和维护;

-
建立制造对象与
sys_dept、sys_user、sys_post、sys_role的关系;
-
自动执行关系权重布局;
-
完成全文件校验,结果为 0 错误、0 警告;

-
保存为新的 EZDML 模型文件,并保留每个阶段的历史 checkpoint。
这项工作不仅生成了表,还落实了生产级设计中经常被忽略的内容:BOM 和工艺版本冻结、工单用料与工序快照、报工幂等,以及功能权限和数据权限的分离。
换句话说,AI 没有停在“给你一个 MES Demo”,而是沿着真实业务约束把设计推进到了可以继续评审和实施的状态。
为什么是本地的 EZDML MCP
数据模型经常包含企业最核心的业务结构。EZDML MCP 默认只接受本机请求,模型写入发生在正在运行的 EZDML 中。文件是否保存、SQL 是否执行、脚本是否运行、代码是否生成,都有清晰的权限边界。
这种本地优先的方式带来几个直接好处:
- 不需要为了使用 AI 改变原有模型文件格式;
- AI 与设计人员看到的是同一份模型和同一 revision;
- 所有修改会立即反映在 EZDML 图形界面中;
- 可以沿用已有数据库连接、脚本和代码模板;
- 历史、校验和回滚仍由建模工具负责。
AI 获得了足够的行动能力,却不需要绕开成熟工具重新发明一套建模系统。
哪些团队适合使用
EZDML MCP 特别适合以下场景:
- 需要快速梳理旧系统数据库的研发团队;
- 正在建设 ERP、MES、WMS、CRM 等复杂业务系统的架构师;
- 需要维护多模型图和共享逻辑表的数据设计人员;
- 希望从数据库模型批量生成项目代码的团队;
- 需要让 AI 参与设计,同时重视审计、校验和可恢复性的企业用户;
- 希望用自然语言完成重复建模操作,又不愿放弃专业工具控制力的个人开发者。
让 AI 从回答问题,走进工程现场
AI 的价值不应该止于“写一段看起来正确的 SQL”。真正有用的工程助手,需要理解现状、遵守边界、展示影响、完成操作,并为结果负责。
EZDML MCP 把数据库模型、图形设计、历史版本、数据库工程、脚本模板和代码生成连接到 AI 工作流中。人负责业务判断和最终决策,AI 负责分析、执行和验证,EZDML 则提供可靠的领域模型与安全边界。
当一句“请在若依基础上设计一套生产级 MES 数据结构”,能够变成一份可视、可审、可校验、可撤销的正式模型时,AI 辅助设计才真正从概念走进了工程现场。
如果你已经在使用 EZDML,不妨开启 MCP 服务,让 AI 读一读手头那份模型。也许数据库设计的下一次效率跃迁,就从这次连接开始。
更多推荐


所有评论(0)