SQL字段命名规范说明_SQL表结构可维护性提升

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

SQL字段命名不是随便起个名字就行,它直接关系到后续开发、维护、协作的效率。清晰、一致、有意义的字段名,能让别人(包括未来的你)一眼看懂数据含义,减少误解和错误。

用小写字母加下划线(snake_case)

统一使用小写英文单词,单词间用下划线分隔,比如 user_namecreated_atis_active。避免大小混写(如 UserName)、驼峰(userName)或中横线(user-name),这些在不同数据库或ORM中容易出兼容问题。

  • MySQL、PostgreSQL 默认对大小写敏感程度不一,小写最稳妥
  • 下划线语义清晰,比驼峰更易读,尤其对非程序员(如DBA、BI人员)友好
  • 避免缩写歧义,比如 usr_nm 不如 user_name 直观

字段名要准确表达业务含义

别用模糊词如 infodataflag,而要说明“是什么的什么”。比如:

  • status → ✅ order_status(表里有多个状态时必须限定上下文)
  • time → ✅ updated_atpayment_time
  • id(单独出现)→ ✅ user_id(作为外键时必须带主表名)

约定常用后缀,提升可读性和一致性

对特定语义的字段,统一加后缀,形成团队共识:

  • _at:表示时间戳,如 created_atdeleted_at
  • _by:表示操作人,如 created_byapproved_by
  • _id:表示外键或关联ID,如 category_idtenant_id
  • is_ / has_ / can_:布尔字段前缀,如 is_deletedhas_attachment

避免保留字和特殊字符

不要用数据库关键字(如 ordergroupuser)作字段名,否则查询时要加反引号,增加出错风险。也不要用空格、中文、$、#等特殊符号。

  • 检查方式:查对应数据库的保留字列表(例如 MySQL 官方文档的 Keywords 页面)
  • 简单办法:字段名以字母开头,只含字母、数字、下划线,且不与常见关键字重名
  • 万一撞了关键字,宁可改名(如 orderorder_no),别依赖转义

基本上就这些。命名看着是小事,但项目跑一年后,翻日志、查问题、加新字段时,一个好名字能省半小时解释时间。不复杂但容易忽略。