Navicat 16 没有真正图层功能,仅通过 Group 实现逻辑子系统划分:Group 可聚合对象、嵌套命名、独立展开/折叠与导出,但需手动隐藏其他 Group 才能按子系统导出,且不支持样式批量控制或自动布局。
Navicat 16 没有真正意义上的“图层”功能,它不支持 Photoshop 那种可开关、可堆叠、可独立导出的图层系统。所谓“图层式子系统划分”,实际是用 Group(表组)+ 自定义命名 + 手动视觉隔离来模拟,不是内置图层管理。
Navicat 16 的 Group 功能就是你唯一的“逻辑分层”工具
navicat 的 group 不是视觉图层,而是模型对象的逻辑容器:它能聚合表、视图、关系线,并支持独立展开/折叠、导出、加备注——这才是子系统划分的实际载体。
- 右键画布空白处 →
Add Group,或拖选多个表后右键 →Add to Group - 双击 Group 名称重命名为业务语义名,比如
user_center、order_core,别用group1这类默认名 - Group 内部可再嵌套 Group(如
order_core下建payment_shard_001),但注意:Navicat 不显示嵌套层级线,全靠缩进和命名区分 - Group 本身不参与 Auto Layout 排列,拖动 Group 整体时,内部表相对位置保持不变——这点必须手动调好再分组,否则导出后容易错位
Group 导出为独立子系统图时的坑
想把每个 Group 当成一个子系统单独导出 PDF/SVG,不能直接右键 Group → Export —— Navicat 不提供该菜单。必须用“隐藏+导出”组合技:
- 先右键其他所有 Group →
Hide Group(不是 Delete),只留目标 Group 可见 - 再执行
File → Export → ER Diagram,此时导出范围仅含可见 Group 内容 - 导出前务必在
Page Setup中设为A4 Landscape+Scale = 75%,否则单个 Group 内容可能撑不满页或字体过小 - 导出 SVG 后若需进一步编辑(如加跨子系统箭头),建议用 draw.io 打开,Navicat 导出的 SVG 不支持 CSS 图层控制
为什么不能靠颜色/线型做子系统区分?
Navicat 允许给表设置背景色或边框色,但这些样式不会随 Group 统一应用,也不能按 Group 批量切换;关系线也只支持全局粗细/样式,无法为不同 Group 设置不同线型(如实线 vs 虚线)。所以依赖视觉样式做子系统标记,后期极易混乱且不可维护。
- 颜色只能作为临时辅助,不能替代 Group 的逻辑边界
- 一旦执行
Arrange Tables → Auto Arrange,所有手动调色和位置都会被重置 - 导出时颜色渲染在 macOS 预览里常发灰,Windows 上又偏亮——跨平台一致性差
真正需要多维度子系统视图时,该换工具
如果你的子系统划分要承载路由规则(如“user_id % 4 → shard_01”)、跨库依赖、读写分离标识,或者需要和中间件配置联动更新,Navicat 16 的 Group 就只是草图级表达。这时候必须跳出客户端工具思维:
- 用
ShardingSphere控制台直接看逻辑库→物理库映射图,它是真实运行时拓扑 - 用
draw.io手绘分片架构图,把 Navicat 导出的各 Group PNG 当作底图贴入,再叠加路由注释、流量方向、故障域等信息 - 把 Group 命名和备注字段导出为 JSON,用脚本生成 PlantUML 或 Mermaid,实现文本化、可版本控制的子系统定义


















