当前位置: 首页 > news >正文

数据库建表规范【记录】

建表规约
【强制】创建表时必须显式指定表存储引擎类型,如无特殊需求,一律为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='网站用户基本信息';

http://www.lryc.cn/news/455104.html

相关文章:

  • css的动画属性
  • 【Ubuntu】PlantUML工具 | 安装 | 语法 | 使用工具画序列图
  • 微信步数C++
  • AI写作工具大比拼:揭秘Claude的神秘魅力以及如何订阅Claude
  • 秋招内推2025-招联金融
  • GOM引擎启动后M2提示Invalid filename报错的解决办法
  • CPU 多级缓存
  • Chrome浏览器调用ActiveX控件--allWebOffice控件功能介绍
  • JavaScript-下篇
  • STM32-HAL库驱动DHT11温湿度传感器 --2024.9.28
  • 使用C语言获取iostat中的await值的方法和方案
  • 阿里云域名解析和备案
  • gitee公钥设置、创建库及使用
  • 融媒体服务中PBO进行多重采样抗锯齿(MSAA)
  • 说说BPMN概念及应用
  • 【微服务】初识(day1)
  • 15分钟学 Python 第40天:Python 爬虫入门(六)第一篇
  • 分层解耦-05.IOCDI-DI详解
  • HCIP-HarmonyOS Application Developer 习题(六)
  • 【电路基础 · 3】实际电压源 实际电流源;两种电源的等效情况;戴维南模型 诺顿模型(自用)
  • 案例-猜数字游戏
  • POI数据的处理与分析
  • ansible部分模块学习
  • 数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(二).设置主键自增等特点
  • SQL第13课——创建高级联结
  • 订阅ROS2中相机的相关话题并保存RGB、深度和点云图
  • Open WebUI | 自托管的类 ChatGPT 网站
  • 【Python】Python知识总结浅析
  • c#代码介绍23种设计模式_20策略者模式
  • FPGA-UART串口接收模块的理解