数据库设计规范
一. 命名规范
- 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔。
- 库名、表名、字段名:要字母小写加下划线风格,长度不能超过32个字符,禁止拼音加英文混合命名。
- 每个字段要有注释,每个表名要有注释,字段的取值含义或者范围,枚举值要有注释,这些都要有中文注释。
- 布尔类型的字段名尽量避免用“is”开头,这是由于有些框架会自动解析“is”开头的javaBean。可以使用“can”或者“do”。
- 表名与字段名尽量保持在30个字符以下
二. 设计规则
1. 三范式
第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
2. 使用InnoDB存储引擎。因为安全,事务,行锁。
3. 字符集必须是UTF-8字符集。
4. 尽量减少或者不使用触发器、视图、存储过程。风险大,维护成本高,尤其对于互联网 项目。
5. 关键表都需要有三个字段(主键、创建时间、修改时间)
6. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE。
7. 如果需要时分秒时间记录,建议用datetime类型。