命名规范
库名、表名、字段名必须使用小写字母,并采用下划线分割
- MySQL有配置参数lower_case_table_names=1,即库表名以小写存储,大小写不敏感。如果是0,则库表名以实际情况存储,大小写敏感;如果是2,以实际情况存储,但以小写比较。
- 如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱。
- 字段名显示区分大小写,但实际使⽤时不区分,即不可以建立两个名字一样但大小写不一样的字段。
- 为了统一规范, 库名、表名、字段名使用小写字母。
库名以 d 开头,表名以 t 开头,字段名以 f_ 开头
- 比如表
t_crm_relation
,中间的 crm 代表业务模块名 - 视图以
view_
开头,事件以event_
开头,触发器以trig_
开头,存储过程以proc_
开头,函数以func_
开头 - 普通索引以
idx_col1_col2
命名,唯一索引以uk_col1_col2
命名(可去掉f_公共部分)。如idx_companyid_corpid_contacttime
(f_company_id, f_corp_id, f_contact_time)
库名、表名、字段名禁止超过32个字符,需见名知意
库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,禁止超过32个字符
临时库、表名须以tmp加日期为后缀
如 t_crm_relation_tmp0425。备份表也类似,形如 _bak20160425
。
按日期时间分表须符合_YYYY[MM][DD]格式
这也是为将来有可能分表做准备的,比如t_crm_ec_record_201403
,但像 t_crm_contact_at201506就打破了这种规范。
不具有时间特性的,直接以 t_tbname_001
这样的方式命名。
库表基础规范
使用Innodb存储引擎
5.5版本开始mysql默认存储引擎就是InnoDB,5.7版本开始,系统表都放弃MyISAM了。