逻辑模型转物理模型需人工确认字段类型、主外键落地及目标库语法兼容性;必须核对数据类型映射、模式名、主键标注、多对多关联表生成四项配置,并检查字段属性、外键类型一致性及注释同步。
逻辑模型转物理模型不是自动翻译,而是必须人工确认字段类型、主外键落地方式和目标库语法兼容性——navicat 不会替你决定 varchar(255) 还是 text,也不会自动加 foreign key 约束。
转换前必须核对的 4 项关键配置
跳过这步,生成的 SQL 很可能在 MySQL 8.0 或达梦 8 上直接报错:
- 在「变换为物理数据模型」向导的
数据类型映射页,确认String映射到VARCHAR(255)而非TEXT(后者在多数库中不支持索引) -
选项页填的模式名(如hr_schema)会生成CREATE SCHEMA或USE,但达梦不支持CREATE SCHEMA,PostgreSQL 则依赖它 - 逻辑模型中未标注主键的实体,物理模型里 不会自动生成
PRIMARY KEY——Navicat 不推断主键 - 多对多关系是否生成关联表(如
post_tag),取决于你在关系属性里是否勾选了创建关联表
生成 SQL 前必须手动检查字段属性
默认视图只显示表名和字段名,但长度、NULL 性、默认值全藏在「属性」视图里。漏看就容易导出带 INT 却没 AUTO_INCREMENT 的主键,或 DATETIME 漏掉 DEFAULT CURRENT_TIMESTAMP:
- 右键任意表 →
编辑表→ 切换到属性视图 - 逐个检查字段的
数据类型、长度/精度、允许为空、默认值 - 特别注意外键字段:类型必须与被引用字段 完全一致(比如都是
BIGINT UNSIGNED),否则同步到 MySQL 8.0+ 会失败
同步到数据库时,“同步”比“执行 SQL”更安全但有坑
直接执行 SQL 容易忽略已有数据、索引冲突、权限问题;「同步到数据库」会做差异对比,只变更需要的部分。但有两个硬限制:
- 同步前必须确保目标库已连接,且当前用户有
CREATE和ALTER权限 - 若物理模型里改了字段名(如
user_name→username),同步默认走RENAME COLUMN,但达梦 8 和 MySQL 5.7 不支持该语法,会直接报错退出
最常被忽略的是:逻辑模型里的 Description 字段(用于生成 SQL COMMENT)和物理模型里的 Comment 属性并不自动同步,改完逻辑层后若没手动复制过去,导出的建表语句里就不会有注释。











