数据库建表规范【记录】
建表规约
【强制】创建表时必须显式指定表存储引擎类型,如无特殊需求,一律为InnoDB。
【强制】必须有行数据的创建时间字段create_date和最后更新时间字段edit_date。
【强制】自增主键命名必须是id,关联表外键命名xxyyzz_id;业务主键命名必须是key char(36)。
【推荐】反范式设计:把经常需要join查询的字段,在其他表里冗余一份。
【推荐】状态字典类型字段类型char(3),尽可能有业务含义,全局统一。
【参考】建库、建表示例: 创建数据库SQL举例:create schema finance CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; 一个较为规范的建表语句为:
CREATE TABLE user ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `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 '一句话介绍自己,最多50个汉字', `user_resume` varchar(200) NOT NULL default ‘’COMMENT '用户提交的简历存放地址', `user_register_ip` int NOT NULL COMMENT ‘用户注册时的源ip’, `sts` char(1) NOT NULL default ‘A’ COMMENT '逻辑状态', create_user VARCHAR(32) COLLATE utf8_bin NOT NULL COMMENT '创建用户', create_date TIMESTAMP NOT NULL default current_timestamp COMMENT ‘创建时间’, edit_user VARCHAR(32) COLLATE utf8_bin NOT NULL COMMENT '修改用户', edit_date TIMESTAMP default current_timestamp on update current_timestamp COMMENT ‘修改时间’, `user_review_status` tinyint NOT NULL default ‘1’ COMMENT ‘用户资料审核状态,1为通过,2为审核中,3为未通过,4为还未提交审核’, 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=utf8mb4 collate=utf8mb4_bin COMMENT='网站用户基本信息';
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具