周振林 周振林
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • 学习笔记

    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript》
    • 《Vue》
    • 《Git》
    • 《小程序笔记》
    • 《JS设计模式总结笔记》
  • 规范
  • Spring
  • 安装教程
  • 其他教程
  • 归真医学
  • 常用药材
  • 学习笔记
  • 经方学习心得
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏
  • 分类
  • 标签
  • 归档

周振林

IT界的小学生
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • 学习笔记

    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript》
    • 《Vue》
    • 《Git》
    • 《小程序笔记》
    • 《JS设计模式总结笔记》
  • 规范
  • Spring
  • 安装教程
  • 其他教程
  • 归真医学
  • 常用药材
  • 学习笔记
  • 经方学习心得
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏
  • 分类
  • 标签
  • 归档
  • 规范

  • Spring

  • 安装教程

  • 其他教程

    • git
    • idea
    • java部署
    • Linux常用命令
    • markdown
    • Vue 中Icon图标的使用
    • Navicat打开数据特别慢
    • frp使用教程
    • CentOS各个版本区别
    • 腾讯云启用root账户并修改密码
    • MySQL建表规范
      • MySQL建表规范
        • 规范一:是否字段
        • 规范二:字母与数字
        • 规范三:表名禁止使用复数
        • 规范四:禁止使用保留字
        • 规范五:主键,唯一索引,普通索引命名规范
        • 规范六:小数类型规范
        • 规范七:字符串长度非常相近,必须使用定长char
        • 规范八:可变字符串规范
        • 规范九:强制字段
        • 规范十:禁止进行物理删除操作
    • 匿名内部类和Lambda表达式
  • 后端
  • 其他教程
周振林
2024-07-19
目录

MySQL建表规范

# MySQL建表规范

# 规范一:是否字段

  1. 表达是否概念的字段,必须使用is_xxx的形式命名;

  2. 数据类型必须是 unsigned tinyint;

  3. 1表示是,0表示否;

举例:是否删除

正确:使用is_deleted,1表示删除,0表示未删除

错误:deleted, if_deleted, delete_or_not

# 规范二:字母与数字

  1. 表名,字段名禁止出现大写;

画外音:MySQL在Windows下不区分大小写,Linux下虽然区分,但为了避免节外生枝,统一禁止大写。

  1. 禁止数字开头,禁止两个下划线中间只有数字;

举例:

正确:aliyun_admin,level3_name

错误:AliyunAdmin,level_3_name

# 规范三:表名禁止使用复数

表名表示实体内容,不是实体数量,禁止使用复数。

# 规范四:禁止使用保留字

常见的例如:desc,range,match,delayed...

# 规范五:主键,唯一索引,普通索引命名规范

  1. 主键索引名:pk_xxx

画外音:primary key

  1. 唯一索引名:uk_xxx

画外音:unique key

  1. 普通索引名:idx_xxx

画外音:index

# 规范六:小数类型规范

  1. 小数类型使用decimal;

  2. 禁止使用float和double;

画外音:float和double存在精度损失,比较的时候,可能得到意想不到的结果。

  1. 如果范围超过decimal,可以拆成整数与小数分开存储;

# 规范七:字符串长度非常相近,必须使用定长char

画外音:预先分配存储空间,不会触发重新分配。

# 规范八:可变字符串规范

  1. 如果字符串长度较长,且内容长度差异较大,使用varchar;

画外音:不预先分配存储空间,比较节省空间。

  1. 如果字符串长度大部分超过5000,使用text,独立出一张表单独存储;

画外音:避免影响主表其他字段索引效率。

# 规范九:强制字段

  1. 必须具备id字段:类型为bigint unsigned,单表时自增,步长为1,不具备业务含义;

  2. 必须具备create_time字段:类型为datetime(除非记录时区信息,使用timestamp);

  3. 必须具备update_time字段:同上;

# 规范十:禁止进行物理删除操作

画外音:逻辑操作保留了数据资产的同时,能够追溯操作行为。

Last Updated: 2024/09/14, 15:11:47
腾讯云启用root账户并修改密码
匿名内部类和Lambda表达式

← 腾讯云启用root账户并修改密码 匿名内部类和Lambda表达式→

最近更新
01
Docker安装
06-10
02
Docker运行JAR
06-10
03
Docker部署MySQL
06-10
更多文章>
Copyright © 2019-2025 鲁ICP备19032096号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式