• 当前位置: 首 页 > 教育百科 > 学历/技能 > 正文

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

    :2024年07月08日
    架构师之路

    阿里MySQL规范推荐10条,索引强制规范4条,SQL强制规范9条。规范一:字段1. 必须使用is_xxx形式命名;规范二:字母与数字1. 不允许出现大写;规范三:表名禁止使用复数表名表示实体内容,不是实体数量;...

    很多公司有很厚一本的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字段:同上;

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

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

    近期好文

    《github标星32W的宝藏项目...》

    贵司有MySQL规范吗?

    你觉得他们的建表规范合理吗?谢转。

    原文出自:https://mp.weixin.qq.com/s/Kif4yvRJGO68jXPErxwNXw

    [编辑:王振袢 &发表于江苏]
    [我要纠错]

    来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
    声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

    关键词: 很多 公司有 很厚 一本 MySQL
    有价值
    0
    无价值
    0
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证