Navicat导出模型报表时字段注释不显示,是因为报表依赖数据库真实存储的COMMENT元数据,若MySQL/PostgreSQL未设置字段COMMENT或SQL Server未用sp_addextendedproperty添加,则报表中对应列为空白。
navicat 本身不提供“从 er 图一键生成完整开发文档(如含接口说明、业务规则、字段字典等)”的能力,导出模型报表 功能仅能输出结构化元数据清单,不是传统意义的开发文档,但它是目前最接近、且可直接复用的自动化出口。
导出模型报表时为什么看不到字段注释或业务说明
Navicat 的 导出模型报表 依赖数据库实际存储的元数据:只有当字段的 COMMENT 属性被真实写入(MySQL/PostgreSQL 支持,SQL Server 需用 sp_addextendedproperty),报表中才会显示。如果字段名是 user_name 但没设 COMMENT,报表里就只有一行空值或默认的“无”。
- MySQL 检查方式:
SHOW FULL COLUMNS FROM users;看Comment列是否非空 - PostgreSQL 检查方式:
SELECT col_description('users'::regclass, attnum) FROM pg_attribute WHERE attrelid = 'users'::regclass AND attnum > 0; - 若 COMMENT 缺失,需先补全再执行逆向工程——否则报表里所有“描述”列都是空白
导出的 HTML/PDF 报表里中文乱码或表格错位
根本原因是 Navicat 报表模板使用固定字体链,且不嵌入字体。Windows 上若系统未启用 Microsoft YaHei 或 SimSun 作为默认 UI 字体,导出的 HTML 在 Chrome 中打开会回退到 Times New Roman,中文直接变方框;PDF 更严重,连字号都可能错位。
- 临时修复:在 Navicat → 工具 → 选项 → 模型 → 报表 → 字体,手动指定为
Microsoft YaHei(Win)或STHeiti(macOS),重启后重试 - Linux 用户必须确保已安装
fonts-wqy-microhei,且fc-list :lang=zh能列出该字体 - 避免用“打印为 PDF”按钮——它调用的是系统打印驱动,字体映射不可控;必须用
文件 → 导出 → 模型报表路径
报表中缺少外键关系说明或索引信息
导出模型报表 默认只包含表、字段、主键三类基础项。外键约束、索引、检查约束、触发器等属于“高级对象”,需手动勾选才纳入:
- 导出前弹出的对话框里,展开
对象类型区域,务必勾选Foreign Keys、Indexes、Check Constraints - 若用的是逆向工程生成的模型(.nmf 文件),需确认逆向时勾选了
Include foreign keys和Include indexes,否则模型里压根没存这些信息 - PostgreSQL 用户注意:视图、物化视图默认不参与报表导出,需单独在
对象类型中启用Views
如何把模型报表变成可用的开发文档初稿
导出的 HTML 报表本质是静态表格,不能直接当文档交付。真正能落地的方式是把它作为数据字典底稿,配合人工补充:
- 用浏览器打开导出的
report.html,Ctrl+A 全选 → 粘贴进 Word 或 Notion,保留表格结构 - 批量替换字段名中的下划线:比如
create_time→创建时间(需提前维护好映射表) - 在“字段说明”列旁插入新列,手填业务含义,例如:
status行对应填“0-待审核,1-已通过,2-已驳回” - 导出的
Relationships表只显示外键名和引用表,需人工补上语义,例如:order.user_id → users.id补为“订单归属用户,级联删除”
别指望自动填充业务逻辑——那是 ER 图做不到的边界。模型报表的价值,在于把 80% 的结构定义固化下来,剩下 20% 的语义解释,必须由开发或产品补全。


















