本文共 2996 字,大约阅读时间需要 9 分钟。
本规范旨在为公司线上业务提供数据库设计指导,涵盖变更流程、表设计、SQL编写等方面,确保系统稳定健康运行。
强制:库名控制在32字符以内,模块表名尽量体现join关系,如user
和user_login
。
强制:命名格式为业务名称+子系统名,统一使用前缀。
强制:分库命名如wenda_001
,或按时间生成如db_20230301
。
强制:创建数据库时必须指定字符集为utf8或utf8mb4。
create database db1 default character set utf8;
id
为自增。id
,使用bigint
,避免随机插入性能问题。create_time
和update_time
。NOT NULL
,定义默认值。bigint
。status
使用tinyint
。int
代替char(15)
。enum
和set
,使用tinyint
或smallint
。int
或decimal
。varchar
。datetime
。id
,不可更新。uk_
或uq_
。CREATE TABLE user ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户id', `user_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '用户ID', `username` varchar(45) NOT NULL DEFAULT '' COMMENT '真实姓名', `email` varchar(30) NOT NULL DEFAULT '' COMMENT '用户邮箱', `nickname` varchar(45) NOT NULL DEFAULT '' COMMENT '昵称', `avatar` int(11) NOT NULL DEFAULT '0' COMMENT '头像', `birthday` date NOT NULL DEFAULT '0000-00-00' COMMENT '生日', `sex` tinyint(4) NOT NULL DEFAULT '0' COMMENT '性别', `short_introduce` varchar(150) NOT NULL DEFAULT '' COMMENT '一句话介绍自己', `user_resume` varchar(200) NOT NULL DEFAULT '' COMMENT '用户简历地址', `user_register_ip` int NOT NULL COMMENT '注册IP', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE NOT NULL COMMENT '更新时间', `user_review_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '审核状态', PRIMARY KEY (`id`), UNIQUE KEY `uq_user_id` (`user_id`), KEY `idx_username` (`username`), KEY `idx_create_time` (`create_time`, `user_review_status`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '网站用户表';
*
。values()
。UNION ALL
替代UNION
。hint
。转载地址:http://ijdfk.baihongyu.com/