Mysql规范篇解读与案例-阿里巴巴开发手册(泰山版)

文章详细阐述了阿里巴巴在MySQL开发中的建表规约,包括字段命名规范(如使用小写字母和数字,避免数字开头,禁用保留字),表名不使用复数名词,以及索引命名约定。此外,还强调了数据类型的选用,如使用decimal而非float或double,以及在特定情况下使用char或varchar。文章还提到了表必备字段(如id、create_time、update_time)和表规范建议,以及何时考虑分库分表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 建表规约

1.1 表达是与否概念的字段

  • 必须使用 is_xxx 的方式命名
  • 数据类型是 int tinyint

正例:表达逻辑删除的字段名 is_delete,1 表示删除,0 表示未删除。
反例:delete

1.2 表名、字段名命名规范

1.2.1 必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字

  • 数据库字段名更改代价很大 可能改一个字段名就要修改整个业务线
  • mysql windows 不区分大小写 但在liunx中是区分大小写的

正例:dic_config ,dic_project_name,project3_level
反例:DicConfig ,dicProjectName,project_3_level

1.2.2 表名不使用复数名词

正例:user,person,dept
反例:users,persons,depts

1.2.3 禁用保留字

1.3 索引命名

  • 主键索引名为 pk_字段名(primary key)
  • 唯一索引名为 uk_字段名(unique key)
  • 普通索引名则为 idx_字段名(index)

1.4 小数类型

  • 小数类型为 decimal,禁止使用 float 和 double
  • float和double 都存在丢失精度的问题

1.5 字符串类型

1.5.1 字符串长度几乎相等,使用 char 定长字符串类型

  • 比如性别存储 男/女 就应使用char类型进行存储

1.5.2 varchar使用规范

  • varchar是可变长字符串,长度不要超过5000 大于 定义字段类型为text

1.6 表必备字段

  • id(主键),create_time(创建时间),update_time(更新时间)

1.7 表规范建议

1.7.1 表的命名遵循 业务名称_表的作用

  • 见名思意
    正例:wxpay_user_bill (微信支付用户账单)

1.7.2 库名与应用名称尽量一直

  • 方便查找和业务区分

1.7.3 新增或者修改字段及时更新注释

  • 避免在后面使用时忘记该字段的含义

1.7.4 单表数据超过500万行 或者大于2GB 才推荐使用分库分表

  • 如果数据量在2-3年之间达不到这个级别无需在建表时就考虑分库分表

2. 索引规约

3.SQL语句

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值