一、强制规约原文(核心必遵守)
- 表名、字段名必须使用小写字母或数字;
- 禁止数字开头;
- 禁止两个下划线中间只出现数字(如
level_3_name违规); - 字段名一旦确定,修改代价极大,需慎重定义。
正例 / 反例 一目了然
✅ 正例aliyun_admin、rdc_config、level3_name
❌ 反例AliyunAdmin(驼峰)、rdcConfig(驼峰)、level_3_name(下划线夹数字)
二、为什么强制小写?
很多开发者疑惑:我本地Windows开发没问题,上线Linux就报错,根源就在这里:
- Windows:文件系统+MySQL 默认不区分大小写;
- Linux:文件系统大小写敏感,MySQL 默认区分库名、表名、字段名大小写;
一旦使用大写/驼峰命名:
- 本地运行正常 → 上线Linux直接表找不到、字段不存在;
- 线上故障难以回滚,预发布环境无法提前规避。
强制全小写 = 屏蔽跨平台差异,保证开发/测试/生产环境一致。
三、MySQL 关键参数:lower_case_table_names 校验
阿里规约配套的最实用校验命令,直接判断数据库是否符合规范:
sql
SHOW VARIABLES LIKE 'lower_case_%';参数解释
lower_case_file_system
ON:系统文件大小写不敏感(Windows)OFF:系统文件大小写敏感(Linux)
lower_case_table_names(生产必须=1)
0:区分大小写(高危,禁止生产使用)1:表名存储小写,比较时不区分(标准规范)2:表名按定义存储,比较时小写
✅ 生产标准配置
lower_case_table_names = 1