阿里的MySQL 建表规范,居然只有10条?

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

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

画外音,另外:

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

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

规范一:是否字段

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

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

3、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,独立出一张表单独存储;

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

规范九:强制字段

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

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

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

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

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

贵司有MySQL规范吗?

你觉得他们的建表规范合理吗?各位运维大侠怎么看?

来源:架构师之路。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 建表规范可以提高数据库的能和可维护,以下是一些常的建表规范1. 表名和字段使用小写字母,使用下划线分隔单词,避免使用保留字作为表名或字段名。 2. 使用有意义且具有描述性的表名和字段名,避免使用缩写或无意义的命名。 3. 使用主键来唯一标识每一记录,可以使用自增主键或其他适合的方式。 4. 使用适当的数据类型来存储数据,避免使用过大或过小的数据类型。例如,使用INT代替VARCHAR来存储整数。 5. 设置适当的字段长度和精度,以节省存储空间。不要为所有字段都设置最大长度。 6. 使用索引来提高查询性能,但不要滥用索引。只对经常被查询的列或需要进行连接操作的列创建索引。 7. 使用外键来维护表之间的关系,并设置合适的约束,以确保数据的完整性。 8. 避免使用过多的NULL值,NULL值需要额外的存储空间,并且在查询时需要特别处理。 9. 使用合适的命名规范来区分表、字段、索引等对象。例如,可以使用前缀或后缀来表示对象类型。 10. 定期进行数据库优化和性能调优,包括删除不再使用的表、字段或索引,重建索引等操作。 这些规范可以提高数据库的性能、可读性和可维护性,同时也有助于减少错误和提升开发效率。根据具体的业务需求和团队约定,还可以进一步完善和补充这些规范

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值