阿里的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,可以拆成整数与小数分开存储; 画外音:预先分配存储空间,不会触发重新分配。 1. 如果字符串长度较长,且内容长度差异较大,使用varchar; 画外音:不预先分配存储空间,比较节省空间。 2. 如果字符串长度大部分超过5000,使用text,独立出一张表单独存储; 画外音:避免影响主表其他字段索引效率。 规范九:强制字段 1. 必须具备id字段:类型为bigint unsigned,单表时自增,步长为1,不具备业务含义; 2. 必须具备create_time字段:类型为datetime(除非记录时区信息,使用timestamp); 3. 必须具备update_time字段:同上; 画外音:逻辑操作保留了数据资产的同时,能够追溯操作行为。 贵司有MySQL规范吗?你觉得他们的建表规范合理吗? 该文章在 2024/8/2 18:33:15 编辑过 |
关键字查询
相关文章
正在查询... |