命名规范必须转化为可执行检查规则:用sql脚本校验表名是否全小写加下划线、在navicat模型设计中固化snake_case前缀模板、通过对象浏览器筛选和连接命名强化提示、导出文件进git后结合ci用grep拦截非法命名。

命名规范必须写成可执行的检查规则,不能只靠口头约定
团队里“表名用小写下划线”这种说法毫无约束力。Navicat 本身不强制命名,但你可以把规范变成 SQL 脚本、ER 图导出模板 或 对象浏览器筛选条件,让不合规的对象一眼就能被识别出来。比如在查询窗口运行:
SELECT table_name FROM information_schema.tables WHERE table_schema = 'your_db' AND table_name REGEXP '^[a-z0-9_]+$' = 0;结果非空就说明存在驼峰或大写表名——这就是可落地的检查点。
用 Navicat 的“模型设计”功能固化命名逻辑
不要等开发写完表再 review 命名。直接在 Conceptual Model 或 Logical Model 阶段就配置好默认命名策略:
- 新建实体时,自动填充
tbl_user、idx_user_email这类前缀模板 - 字段名统一设为
snake_case,禁用CamelCase输入框(右键字段 → 属性 → 勾选“只读”) - 导出 SQL 时勾选
Generate DROP statements和Use backticks,避免因大小写敏感导致迁移失败
连接级配置 + 对象浏览器分组,让规范“看得见”
每个连接在 Navicat 中都可设置“对象浏览器”的显示逻辑。比如:
- 在连接属性中启用
Show system objects关闭,避免mysql、information_schema干扰视线 - 用
Filter功能预设常用视图:如只显示tbl_*开头的表、vw_*开头的视图 - 多人共用同一套连接配置时,把
connection_name命名为prd_api_db_snakecase,本身就是一次轻量级提醒
同步到 Git 时,文件名和提交信息就是第一道防线
Navicat 支持将模型导出为 .nmd(XML 格式)或 SQL 脚本。这些文件进 Git 后,命名规范就变成了代码审查的一部分:
-
model_user_auth.nmd✅,ModelUserAuth.nmd❌ - SQL 导出文件名必须匹配数据库名,如
dw_staging_v20260907.sql - CI 流程中加一条
grep -q "CREATE TABLE [A-Z]" *.sql || exit 1,直接拦截非法命名的提交
真正难的不是定规则,而是让每个人每次右键“导出”、每次双击建表、每次点击“测试连接”时,界面都在无声提示那个命名逻辑。否则文档写得再全,也只是一份没人打开的 PDF。











