一. 命名规范
- 数据库、表、字段名采用26个英文字母(大小写区分)和0-9的自然数(通常不加),加上下划线’_'组成,名称尽量控制在32个字符以内,最长不超过64个字符;
- 分库、分表命名格式是“通配名_编号”,编号从“1”开始递增,比如“db_001”,以时间进行分库、分表的名称格式是“通配名_时间,比如“db_20190423”;
- 创建数据库、表时指定字符集为utf8,排序规则 utf8_general_ci;”
- 库的名称格式:业务系统名称_子系统名,同一模块使用的表名尽量使用统一前缀,比如user_login, user_profile, user_detail, user_role;
- 中间表用于保留中间结果集,名称必须以“tmp_”开头;备份表用于备份或抓取源表快照,名称必须以“bak_”开头;中间表和备份表定期清理;
- 创建数据库、表、字段名时不要使用MySQL保留字,可参考官方文档;
二. 表结构设计
- 使用和业务没有关联的自增id作为主键,类型为int或bigint,且主键值禁止被更新;
- 核心表(如用户表)增加行数据的创建时间字段create_time和最后更新时间字段update_time,对于部分状态行数据还可以增加行数据创建人员字段creator和最后更新人员字段modifier;
- 表中所有字段建议设置NOT NULL属性(如果添加索引则必须设置),一般情况下设置字符串默认值为空字符串‘’ÿ