12:企业规范约束-MySQL

举报
Yeats_Liao 发表于 2022/10/23 21:39:59 2022/10/23
【摘要】 12.1 ★库表字段约束规范字段名:is_vip unsigned tinyint 长度为1mysql命名是不区分大小写的,字段名必须是小写字母字段分割用下划线隔开,且一旦定义就不能改字段了表名:mysql仓库名一般和应用名保持一致,关键词不能用作表名,且表名不能出现复数索引名:主键一般是以pk_xxx开头,唯一键以uk_xxx,idx_xxx等开头小数类型禁止使用float和double...

12.1 ★库表字段约束规范

字段名:

  • is_vip unsigned tinyint 长度为1
  • mysql命名是不区分大小写的,字段名必须是小写字母
  • 字段分割用下划线隔开,且一旦定义就不能改字段了

表名:

  • mysql仓库名一般和应用名保持一致,关键词不能用作表名,且表名不能出现复数

索引名:

  • 主键一般是以pk_xxx开头,唯一键以uk_xxxidx_xxx等开头
  • 小数类型禁止使用floatdouble,防止丢失精度,数据很小用char(定长),不使用varchar(变长),很长直接用text

表定义:

  • 表里必须定义(强制要求)的字段 idcreate_timeupdate_time
  • id必须为主键,必须为无符号自增bigint类型,不能定义为int,除非是分布式id
  • create_timeupdate_time必须为datatime类型
  • 单表行数不超过500W行,一般要分表

12.2 索引规范

索引约束:

  • 一般情况下,有唯一特性的字段要设置唯一索引
  • 在实际开发当中不允许多于两个表的查询
  • 多表查询的时候,关联的字段也要有索引
  • 大多数情况下有约束规范就足够了,实习生不用去建索引

12.3 ★SQL开发约束规范

开发约束:

  • 不能用where name = null 来判断是否为空,需要用where name is null
  • 并发项目中不要使用并发和级联,一切外键的问题在应用层解决
  • 不能使用存储过程
  • 子查询中避免in操作
  • 编码格式统一utf-8

12.4 其他规范

  • ORM(Object Relational Mapping)对象关系映射框架不能使用select
    *作为查询语句,因为效率太低,很多数据没必要查询出来
  • 布尔类型不能加is ,数据库字段必须加is下划线
  • @Transactional 不要滥用,可能会影响数据库的QBS
  • DBS 即Database System,是数据库系统
  • QBS 即Query By String,是基于数据库的全文检索系统
  • 销毁表操作一定要快

总之数据库设计需要考虑周全,涉及的内容非常多……

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。