SQL字段命名应统一使用小写加下划线(snake_case),避免缩写与保留字,准确表达业务含义并约定常用后缀(如_at、_by、_id、is_/has_/can_),以提升可读性、兼容性与协作效率。

SQL字段命名不是随便起个名字就行,它直接关系到后续开发、维护、协作的效率。清晰、一致、有意义的字段名,能让别人(包括未来的你)一眼看懂数据含义,减少误解和错误。
用小写字母加下划线(snake_case)
统一使用小写英文单词,单词间用下划线分隔,比如 user_name、created_at、is_active。避免大小混写(如 UserName)、驼峰(userName)或中横线(user-name),这些在不同数据库或ORM中容易出兼容问题。
- MySQL、PostgreSQL 默认对大小写敏感程度不一,小写最稳妥
- 下划线语义清晰,比驼峰更易读,尤其对非程序员(如DBA、BI人员)友好
- 避免缩写歧义,比如 usr_nm 不如 user_name 直观
字段名要准确表达业务含义
别用模糊词如 info、data、flag,而要说明“是什么的什么”。比如:
- ❌ status → ✅ order_status(表里有多个状态时必须限定上下文)
- ❌ time → ✅ updated_at 或 payment_time
- ❌ id(单独出现)→ ✅ user_id(作为外键时必须带主表名)
约定常用后缀,提升可读性和一致性
对特定语义的字段,统一加后缀,形成团队共识:
- _at:表示时间戳,如 created_at、deleted_at
- _by:表示操作人,如 created_by、approved_by
- _id:表示外键或关联ID,如 category_id、tenant_id
- is_ / has_ / can_:布尔字段前缀,如 is_deleted、has_attachment
避免保留字和特殊字符
不要用数据库关键字(如 order、group、user)作字段名,否则查询时要加反引号,增加出错风险。也不要用空格、中文、$、#等特殊符号。
- 检查方式:查对应数据库的保留字列表(例如 MySQL 官方文档的 Keywords 页面)
- 简单办法:字段名以字母开头,只含字母、数字、下划线,且不与常见关键字重名
- 万一撞了关键字,宁可改名(如 order → order_no),别依赖转义
基本上就这些。命名看着是小事,但项目跑一年后,翻日志、查问题、加新字段时,一个好名字能省半小时解释时间。不复杂但容易忽略。










