只有十条,阿里巴巴 MySQL 建表规范,居然...

数据库 MySQL
阿里的MySQL建表强制规范只有10条,其中索引强制规范有4条,SQL强制规范有9条,大伙可以参考借鉴。

很多公司有很厚一本的MySQL规范,规范内容越多,越难落地执行。

阿里的MySQL建表强制规范只有10条,大伙可以参考借鉴。

画外音,另外:

索引强制规范有4条,SQL强制规范有9条;

建议规范与参考规范若干。

规范一:是否字段

  • 表达是否概念的字段,必须使用is_xxx的形式命名;
  • 数据类型必须是 unsigned tinyint;
  • 1表示是,0表示否;

举例:是否删除

  • 正确:使用is_deleted,1表示删除,0表示未删除
  • 错误:deleted, if_deleted, delete_or_not

规范二:字母与数字

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

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

(2) 禁止数字开头,禁止两个下划线中间只有数字;

举例:

  • 正确:aliyun_admin,level3_name
  • 错误:AliyunAdmin,level_3_name

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

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

规范四:禁止使用保留字

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

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

(1) 主键索引名:pk_xxx

画外音:primary key

(2) 唯一索引名:uk_xxx

画外音:unique key

(3) 普通索引名:idx_xxx

画外音:index

规范六:小数类型规范

(1) 小数类型使用decimal;

(2) 禁止使用float和double;

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

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

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

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

规范八:可变字符串规范

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

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

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

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

规范九:强制字段

  • 必须具备id字段:类型为bigint unsigned,单表时自增,步长为1,不具备业务含义;
  • 必须具备create_time字段:类型为datetime(除非记录时区信息,使用timestamp);
  • 必须具备update_time字段:同上;

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

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

贵司有MySQL规范吗?

责任编辑:赵宁宁 来源: 架构师之路
相关推荐

2020-12-18 10:55:51

阿里巴巴Redis数据库

2010-06-28 10:43:47

2024-04-25 09:14:57

数据库Mysql阿里巴巴

2013-08-22 09:41:52

阿里巴巴去IOE王坚

2016-02-29 19:38:06

阿里巴巴物联网

2019-01-29 15:25:11

阿里巴巴数据库分库分表

2009-02-27 10:46:32

DBA笔试题阿里巴巴

2019-08-15 10:25:02

代码开发工具

2023-03-29 09:42:32

2013-08-22 09:36:45

阿里巴巴王坚阿里云

2009-06-30 13:28:54

阿里巴巴旺旺

2012-08-02 09:14:13

编程戒律

2012-05-15 01:38:18

编程编程技巧编程观点

2009-06-22 09:38:49

阿里巴巴办公环境

2014-12-31 10:48:40

阿里巴巴马云

2021-03-02 08:01:15

MySQL数据库数据库加密

2015-06-12 10:12:30

2015-04-23 15:30:08

2014-06-11 10:04:05

UC优视阿里巴巴
点赞
收藏

51CTO技术栈公众号