数据库设计规范
-
表名和字段名称统一使用下划线方式命名。
-
创建时间(
create_time
),更新时间(update_time
),删除时间(delete_time
)必须使用这三个规定的名称,时间相关字段统一使用_time
后缀(不允许用_date
),并且bigint
类型存时间戳不能用int
,2038年以后int(11)长度就不够用了。 -
浮点数统一使用
float
类型,涉及计算的使用decimal
类型。 -
一般的数据表引擎使用
InnoDB
,对于没有事务处理的需求并且查询比较频繁的表使用MyISAM
引擎。 -
status
,type
等类型相关的统一使用enum
类型,并且注释按照如下标准编写(使用英文标点符号)。
状态[1:正常,2:禁止,3:未知]
-
数据表字符集选择
utf8mb4
,排序规则utf8mb4_general_ci
。 -
字段定义一般要求为
NOT NULL
,添加默认值,除非有特殊需求,可以为NULL
。 -
创建字段必须要有备注,表名需要有备注。
-
在常用搜索字段上需要添加索引。
-
数据表表默认选用
id
作为主键,选择为自增模式,有特殊需求,可以取消主键字段。 -
不要使用存储过程,触发器等功能,除非有特殊需求。
特殊说明
字段 | 字段名称 | 字段类型 | 字段说明 |
---|---|---|---|
create_time | 创建时间 | bigint | 记录添加时间字段 |
update_time | 更新时间 | bigint | 记录更新时间的字段 |
delete_time | 删除时间 | bigint | 记录删除时间的字段,字段默认值务必为 NULL |
xxx_time | 时间相关格式数据 | bigint | 自动维护时间,存储时可以兼容时间戳(10和13位都可以)和日期格式 |
xxx_json | json格式数据 | text或json | 存储 json 字符串,可以直接存储数组和得到数组 |
status,type等 | 需要枚举 的字段 | enum | 注释必须按照示例编写,例如:状态[1:正常,2:禁止,3:未知] ,会自动生成带有相关常量关系的代码,注意枚举类型为字符串 |