Navicat ER图默认不显示索引是设计选择而非bug,因其专注逻辑建模,索引属物理层;界面无“显示索引”选项,索引需通过对象树→「对象信息」→「索引」标签页或SQL命令查看。
Navicat ER图默认不显示索引,这不是bug而是设计选择
er图本质是实体-关系-属性的语义建模工具,索引属于物理层优化手段,navicat严格区分逻辑模型与存储实现。即使表上有index(user_id)或unique key(email),只要没定义为外键或主键约束,就不会出现在er图节点里。
“在模型显示设置中开启索引”根本不存在
Navicat 的 ER 图界面没有「显示索引」开关选项。所谓“模型显示设置”常被误传,实际能调的只有字段名、数据类型、注释、主键标识等基础元数据。索引信息压根不在该渲染管线中:
- 右键 ER 图空白处 → “显示选项”里没有索引相关复选框
- 菜单栏「设计」→「显示选项」只控制字体大小、连线样式、是否显示字段类型等
-
Navicat Data Modeler也未将索引纳入实体属性面板,双击表节点看不到索引列表
想看索引,得换地方查
索引必须回归数据库原生视图或工具侧边栏,不能指望 ER 图承载:
- 在 Navicat 对象树中右键目标表 → 「对象信息」→ 切到「索引」标签页,直接列出所有索引及其列顺序
- 执行 SQL:
SHOW INDEX FROM users;(MySQL)或\d+ users(PostgreSQL) - 导出结构文档时,用「工具」→「SQL 预览」生成 DDL,其中
CREATE INDEX语句完整保留
团队协作时最容易忽略的一点
有人把索引硬加进 ER 图注释里(比如在表下方手写“IDX_user_status”),这会导致图与真实结构脱节——索引删了、改了、失效了,图上还留着。真正可靠的索引文档必须独立维护,格式统一为表格:table_name|index_name|columns|is_unique|comment,和 ER 图文件分开存、同步管。


















