mysql 规范

1:建库规范

1)库名以 库名以 _db_db_db结尾,如果分库则以 结尾,如果分库则以 结尾,如果分库则以 _数字 _db 结尾

2)  单库表数量不建议超过 400 张

2:建表规范

  表名称与字段规范 

1) 表名以 t_ 或者模块名(或者模块名(如 cms_))
2) 字段名称可读性要高,多个单词需用“ _”分割

3) 表名和所有字段都要注释, 配置项的还需具体值含义表名和所有字段都要注释

     如:文章状态 :1.已发送, 2. 未发送, 3. 草稿

4) 分表的名以 _数字结尾

建表规范

1) 每一个表设计自增的主键 关联其他表的主键可用 , 唯一索引 。命名为 id 

 2) 所有表都使用 innodb引擎 

3) 默认使用 默认使用 默认使用 utf8 字符集,如果使用 emoj i等表情符号,需要使用 utf8mb4 

(MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思)

4) 为每个字段设置 NOT NULL ,并且设置默认值 0或'' ,如果 设置 null会额外占用一个字节 

 5)谨慎使用 text 大文本字段,建议拆分到另一张表中通 大文本字段 过主键 id 关联 

6) 使用varchar类型,请指定合适的字符长度,过长varchar会浪费内存空间 ,会浪费内存空间 并影响(联合)索引 

 7)  为业务设计字典表,通过整型数值来描述各种状态 

8) 通过tinyint来代替 来代替 enum和 char(1) 

9) 手机号码一般使用 varchar(20 ) 考虑国外的手机号

10) 区分使datetime和timestamp:

datetime:8个字节

timestamp:4个字节

  特性

 建议使用 timestamp,也可以转换成时间戳变 成 int 类型

 11) 涉及到浮点计算,建议使用整型来代替,可以把单位精确到分,从而避免浮点计算,因浮点计算更占用 CPU

 12) 有逻辑删除需求的表,可增加 delete_flag字段 (tinyint类型,默认值为 0),用来标识字段是否被逻辑删除, 以便误操作恢复 

 13) 库名,表名,字段名,索引名,视图都要求小写

 14) 禁用外键 

15) 单表字段控制在 50 以内 

16) 自增 ID 无特殊需求,从 1开始


你可能感兴趣的:(MySQL)