数据库设计规范

1,数据库内部非常用功能使用规范

1)、尽量不使用存储过程 、函数、触发器等

2)、避免使用 外键' ,主子表一致性由业务程序来保证

2,库、表、字段、索引命名规范

1)、不以数字打头及特殊字符打头

2)、命名避免使用MYSQL相关关键字

3)、命名长度尽量控制在32个英文字符以内

4)、多个单词以下划线 '_' 分隔保证语义清晰

5)、不添加如 a_、t_ 类似无明显含义的字符

6)、普通索引命名以 'ind_' 或' idx_' 开头

3,字段及索引设计规范

1)、主键字段类型一律用bigint或无符号bigint (无特殊考虑默认自增) 尽量以 '中性' (与业务无关) 字段存在

2)、尽量使用varchar 或 tinyint 来替换 char 类型字段

3)、varchar 字段类型长度尽量控制在191或255以内 [uft8mb4对应191 、 uft8 对应255]

4)、日期/时间存储建议直接使用datetime 不推荐使用 timestampbigint/int

5)、所有字段特别是索引字段尽量NOT NULL增加默认值

6)、尽量不使用blob类型字段,不常检索的text 、blob等大字段拆分存储

7)、不同表之间具有关联关系字段,类型及其类型长度必须一致

8)、尽量以一个索引 '覆盖尽量多' 查询,避免只创建单列索引

9)、单表字段个数尽量控制在12个以内,索引个数尽量控制在6个左右

10)、所有表及其字段都尽量增加 '注释'

4,SQL书写规范

1)、拒绝全表扫描,带条件的查询务必走索引

2)、按需返回字段而不是统一 select * 

3)、尽量业务端排序,减少数据库端order by

4)、尽量避免对where条件字段进行计算

5)、分页查询避免直接使用limit xxx,yyy

6)、插入操作采用insert into  t1(field1,field2) 方式

7)、查询条件变量传入拒绝SQL拼接考虑prepare

你可能感兴趣的:(数据库设计规范)