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='名额控制配置信息'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容