mysql数据库规范

一.建表规范

  • MYSQL数据库设计规范与原则
  • 互联网MySQL开发规范

1.基础规范

  • 使用 INNODB 存储引擎
  • 表字符集使用 UTF8
  • 所有表都需要添加注释
  • 单表数据量建议控制在 5000W 以内
  • 不在数据库中存储图⽚、文件等大数据
  • 禁止在线上做数据库压力测试
  • 禁⽌从测试、开发环境直连数据库

2.命名规范

  • 库名、表名、字段名、索引名全部小写。加上下划线'_'组成
  • 库名、表名、字段名禁⽌止使⽤用MySQL保留字
  • 库名、表名、字段名禁⽌止超过32个字符。须见名之意
  • 临时库、表名必须以tmp为前缀,并以⽇日期为后缀

3.库、表、字段开发设计规范

  • 表设计遵循三范式设计原则
  • 所有表采用自增主键
  • 所有字段均定义为 NOT NULL
  • 可空字符串 默认值 ''
  • 使用 DATETIME 存储日期时间。默认值 CURRENT_TIMESTAMP
  • 使用 DATE 存储日期。默认值 '1970-01-01'
  • 使用 TIME 存储时间。默认值 '00:00:00'
  • 每张表需有创建时间、更新时间。示例如下:
 create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '创建时间', 
 update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', 
  • 需要记录操作者和操作时间的表。示例如下:
 operator varchar(100) DEFAULT '' NOT NULL COMMENT '操作者', 
 operation_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '操作时间',

4.建表语句示例

 CREATE TABLE `quota_configure_info` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `quota_num` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '名额数量',
    `total_num` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '今日名额总数',
    `quota_date` date NOT NULL DEFAULT '1970-01-01' COMMENT '名额日',
    `quota_time` time NOT NULL DEFAULT '10:30:00' COMMENT '名额时间',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`)
  ) ENGINE=InnoDB AUTO_INCREMENT=1151 DEFAULT CHARSET=utf8 COMMENT='名额控制配置信息'

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