目录

  • 12.1 ★库表字段约束规范
  • 12.2 索引规范
  • 12.3 ★SQL开发约束规范
  • 12.4 其他规范

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,是基于数据库的全文检索系统
  • 销毁表操作一定要快

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

12:企业规范约束-MySQL相关推荐

  1. Mysql中的一绡规范约束,摘自《阿里巴巴 Java 开发手册》

    Mysql中的一些规范约束,摘自<阿里巴巴 Java 开发手册> 下载地址:http://download.csdn.net/detail/lengyue1084/9753135

  2. 如何创建一张表mysql_如何创建一张规范的MySQL表

    到底怎样才能创建一张规范的MySQL表? 为什么必定需要有无业务意义的主键,并且还需要自增? 应该在哪些字段添加索引? 或许有些人会有以上类似的疑问.这几天通过本身的整理加上好友的指导,整理了一份稍微 ...

  3. 9、MySQL数据类型约束 -mysql

    目录 一.MySQL数据类型精讲 1. MySQL中的数据类型 2. 整数类型 2.2.2 UNSIGNED 2.2.3 ZEROFILL 2.3 适用场景 2.4 如何选择? 3. 浮点类型 4. ...

  4. Day462.MySQL数据类型约束 -mysql

    MySQL数据类型精讲 1. MySQL中的数据类型 类型 类型举例 整数类型 TINYINT.SMALLINT.MEDIUMINT.INT(或INTEGER).BIGINT 浮点类型 FLOAT.D ...

  5. 企业Shell实战-MySQL分库分表备份脚本

    本文来自 http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.ht ...

  6. 基于java 工单管理_实训任务工单1-2(编写规范Java代码) 实训任务工单1-2(编写规范Java代码).docx_学小易找答案...

    [其它]实训任务工单4-1(泛型类.泛型方法的应用) 实训任务工单4-1(泛型类.泛型方法的应用).docx [简答题]教学工单5-1Java序列化机制的使用 [填空题]The name of my ...

  7. 外键约束 mysql

    外键约束 mysql 让表与表之间产生关系,从而保证数据的正确性 建表时创建外键 create table 表名(...constraint 外键名称 foreign key (外键列名称) refe ...

  8. 主键约束 mysql

    主键约束 mysql 建表时添加 示例 删除主键 追加主键 alter table 表名 modify 列名 类型 primary key

  9. 唯一约束 mysql

    唯一约束 mysql 建表时添加 示例 效果 添加同样的数据时,会报错提示 确保该列没有重复的数据 null数据也只能有一个 删除唯一约束 alter table 表名 drop index 唯一列的 ...

最新文章

  1. Linux下编译vtk的java版本,vtk在linux下的安裝(12月8日更新)
  2. UVA 624 CD(01背包,要记录路径)
  3. Apache服务器主配置文件 httpd.conf 中文版
  4. Android数据存储之文件存储(瞬时数据的存储与读取)项目已上传GitHub
  5. a类学科计算机,最全名单来了!上海交大25个学科获评A类学科
  6. OpenCV使用Laplace运算符检测边缘的实例(附完整代码)
  7. gradle 转 maven
  8. iphone控制电脑_苹果远程控制电脑软件免费下载-超控Controlax(iPhone远程控制Windows)v1.1 最新版...
  9. linux 线程异常退出_Linux 进程必知必会
  10. matlab 矩阵维度一致,错误使用 / 矩阵维度必须一致。
  11. lnmp一键安装升级PHP版本
  12. 网页字体生成器「谷雨解字」——不仅仅是中文字体子集化工具
  13. 做一款微信小程序到底需要多少钱?
  14. 7-5 字符串对称 (10 分)
  15. 石墨文档代码学习笔记分享
  16. 非常好的运算放大器基础
  17. android nv位图打印机_通过C#中的comport将位图图像打印到pos打印机
  18. JSON.parse解析json字符串必须注意的那些事
  19. 仿微信公众平台登录页面
  20. 解释一下浏览器解析HTTP的过程

热门文章

  1. Sofia的同步与多线程
  2. 政府大数据之数据治理
  3. 心通达OA已经支持11个操作系统,包括鸿蒙OS、麒麟OS等等
  4. c++中使用index变量报错:error: ‘int index‘ redeclared as different kind of symbol
  5. MS 08-067失败过程记录
  6. 推广一下自己建的群-影视资源分享群
  7. 流黄稠鼻涕是什么感冒
  8. 硼中子俘获疗法的历史与现状(2022)
  9. CPU和GPU的区别,以及CUDA的定义
  10. 如何在 Windows 10 上为单个用户安装应用程序