MySQL设计规约
今天总结下无尘老师的MySQL设计规约。课程大致分为建表规约、索引规约、SQL与ORM映射规约。最后老师针对T31项目给予了设计方案实战讲解。
建表规约
解决数据库相关名称的纠结,选择合适的数据类型和长度。
表、字段命名
- 必须使用小写字母或数字
- 禁止出现数字开头
- 禁止两个下划线中间只出现数字
- 不使用复数名词
- 禁用保留字
- 是与否概念的字段,必须使用is_xxx的方式命名
数据类型
- 小数类型为decimal
- 货币数据使用最小货币单位,数据类型为bigint
- 字符串长度几乎相等使用char
- varchar长度不要超过5000
表必备三字段
- id
- create_time
- update_time
建表推荐规约
- 表的命名最好是遵循“业务名称_表的作用”
- 库名与应用名称尽量一致
- 如果修改字段含义或对字段表示的状态追加时,需要及时更新字段注释
- 字段允许适当冗余,以提高查询性能,但必须考虑数据一致
- 单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表
索引名称规约
索引命名
- 主键索引名为 pk_字段名
- 唯一索引名为 uk_字段名
- 普通索引名则为 idx_字段名
创建索引规约
- 有唯一特性的字段必须建成唯一索引
- 在varchar字段上建立索引时,必须指定索引长度
- 建组合索引的时候,区分度最高的在最左边