12:企业规范约束-MySQL

2023-05-16

目录

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

12:企业规范约束-MySQL 的相关文章

  • 在 OS X 10.7 中找不到 Mysql 命令

    我无法让我的 mysql 在 os x 10 7 上启动 它位于 usr local mysql bin mysql 当我输入时 我得到命令未找到mysql version在终端中 我试过这个无法从 mac 命令行访问 mysql http
  • 使用 Hibernate 和 Apache DBCP 的 MySQL 连接池问题

    看来我的应用程序有问题 当应用程序在启动后闲置很长时间 我不确定确切的时间 时 我会在日志中收到以下错误消息 我使用 Spring Hibernate MySQL 和 ApacheDBCP 进行连接池 ERROR org hibernate
  • Mysql为简单频繁查询创建排序索引性能

    我正在处理一个包含大约 400 万条消息条目的 mysql 表 并尝试根据时间戳选择最新的 50 条消息 另一个要求是返回的消息不以固定前缀开头 问题是单个查询大约占用 25 的 cpu 并且最多需要 1 5 秒 该查询经常由多个客户端执行
  • 解码Json数据数组并插入到mysql

    这个问题可能已经在这里问过 但我尝试搜索找不到它 我有如下 Json 数据 CityInfo CityCode 5599 Name DRUSKININKAI CityCode 2003 Name KAUNAS CityCode 2573 N
  • MySQL:你能指定一个随机限制吗?

    有没有办法在 SQL MySQL 中随机化限制数字 我希望能够做的是在查询中获取随机数量的结果以在插入子查询中使用 而无需任何服务器端脚本 我希望能够作为假设说明运行的查询是 SELECT id FROM users ORDER BY RA
  • 为 Mariadb 安装连接器 C

    所以 我想使用 Mariadb 有一个连接器 C https downloads mariadb org connector c https downloads mariadb org connector c 我该如何安装它 坦白说 它的文
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • 如何在MySQL中查找上周的数据

    我想显示来自 Q1 每个学生只有最后一周 Q2 每个学生只有最后一个月 我怎样才能实现这个目标 一周演示 http sqlfiddle com 2 f1fbb 3 当月演示 http sqlfiddle com 2 f1fbb 4 CREA
  • 显示过去 7 天 PHP 的结果

    我想做的是显示过去 30 天的文章 但我现有的代码不断给我一个 mysql fetch assoc 错误 然后追溯到我的查询 这是代码 sql mysql query SELECT FROM table WHERE DATE datetim
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 在mysql中搜索“SanF”时获取旧金山的记录

    当我搜索 SanF 时获得 San Francisco 记录 SELECT FROM table WHERE col LIKE san Works SELECT FROM table WHERE col LIKE san F Works S
  • 在 MySQL 中分割逗号分隔值

    我正在尝试将字符串中以逗号分隔的 值拆分为多列 样本数据 COL1 COL2 COL3 000002 000003 000042 09 31 51 007 004 007 预期输出 Pno Cno Sno 000002 09 007 000
  • 更新重复密钥上的复合密钥 [重复]

    这个问题在这里已经有答案了 我需要更新新行 如果两者都满足 date dat and empId who 作为复合键 但如果其中之一或两者不同 则插入 sql INSERT INTO history SET endtimestamp now
  • Laravel Sum 列数据库 Eloquent

    尝试获取我的一个表中 int 字段的总和应该非常容易 不幸的是 事实并非如此 因为无论我使用 Laravel MySQL 还是 Excel 我都会得到不同的结果 Laravel 5 4 给了我20506 Table sum field na
  • PHP 的 PDO 可以限制为单个查询吗?

    PHP 的 PDO 允许通过 query 方法或作为准备好的语句同时执行多个查询 以下两个示例均有效 Two SQL queries query SELECT FROM table DROP table Execute via query
  • PHP/MySQL:如何在网站中创建评论部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我不会问 如何使用 PHP MySQ
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • Clojure MySQL 语法错误异常(“[...] 靠近 '???????????????' [...]”)

    除了建立连接之外 我在使用 clojure contrib sql 做任何事情时都遇到困难 我有一个 mysqld 在 localhost 3306 上运行 数据库名为clj db 用户 clj user localhost 和密码 clj
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT

随机推荐

  • VS2019 error C4703: 使用了可能未初始化的本地指针变量 错误

    目录 一 异常错误二 原因三 解决方法1 关闭安全开发生命周期 SDL 检查2 或者将指针变量初始化为nullptr 一 异常错误 error C4703 span class token operator span 对一个潜在的未初始化的
  • VS2019 高级保存设置UTF-8编码-源代码乱码问题

    目录 一 异常错误二 原因三 解决方法 一 异常错误 发现通过VS2019编译的 c文件 xff0c 在Linux中用shell运行时 xff0c 会出现中文乱码的情况 二 原因 本以为是终端编码格式问题 xff0c 后来发现是最初编译器编
  • Linux 终端编译后运行.c/.cpp文件中文乱码问题

    目录 一 异常错误二 原因三 解决方法1 首先确保源代码编码格式是UTF 82 确保Linux运行语言支持中文 一 异常错误 发现通过VS2019编译的 c文件 xff0c 在Linux中用shell运行时 xff0c 终端会出现中文乱码的
  • 「MySQL」从零到删库

    目录 零 数据库的产生 什么是数据库 database抛出问题 xff0c 数据库的产生数据库萌芽阶段的发展历程CRUD层次模型网状模型关系型数据库企业和我们都选什么数据库呢 xff1f 详见 xff1a 零 数据库的产生 一 安装 连接以
  • 用python合并pdf,并添加书签

    之前得到了很多文章的pdf xff0c 现在需要把它们合到一个pdf文件中 使用python库pypdf2可以实现这个功能 首先要安装 pip install pypdf2 然后运行下面的示例 python mergePDF py merg
  • 0:数据库的产生-MySQL

    目录 0 1 什么是数据库 database0 2 抛出问题 xff0c 数据库的产生0 3 数据库萌芽阶段的发展历程0 4 CRUD0 5 层次模型0 6 网状模型0 7 关系型数据库0 8 企业和我们都选什么数据库呢 xff1f 0 1
  • 1:安装、连接以及配置-MySQL

    目录 1 1 windows两种安装方式 xff0c 入门选手推荐第二种 win10演示 1 2 更改终端 xff0c 放弃cmd作为主要终端 xff0c 使用一流终端1 3 MYSQL服务的启动与停止1 4 连接mysql1 5 初始化d
  • 2:数据库的基本操作-MySQL

    目录 2 1 数据库的显示讲解2 2 创建数据库1 创建数据库2 创建带有关键字的数据库 xff08 不推荐 xff09 3 判断并创建一个不知道是否存在的数据库 2 3 删除数据库1 删除数据库2 如果存在则删除数据库 2 4 查看创建的
  • 3:表的基本操作-MySQL

    目录 3 1 提出问题 xff0c 引入 表 的概念与思维模式 table3 2 引用数据库和查看数据库中的表1 引用数据库2 查看数据库中的表 3 3 创建表3 4 创建表 xff08 企业用 xff0c 有B格 xff09 3 5 查看
  • 4:数据操作-MySQL

    目录 4 1 插入数据1 插入数据2 数据的自动添加 xff1a NULL3 default的使用4 省略自增 4 2 一次性插入多条数据4 3 删除数据1 删除2 条件删除 4 4 清空表1 删表跑路2 删节跑路 4 5 小细节 xff0
  • 5:数据类型-MySQL

    目录 5 1 数据库的数据类型问题5 2 int数值类型5 3 int类型实际操作和注意事项5 4 浮点数类型5 5 定点数类型5 6 字符串与文本类型5 7 布尔类型5 8 枚举类型5 9 枚举类型的另类存储方式5 10 枚举类型的好处
  • 6:列属性完整性-MySQL

    目录 6 1 列属性问题6 2 Primary key主键作用以及企业用途6 3 删除主键 组合键 选择主键1 删除主键2 组合键3 选择主键 6 4 复合主键究竟有什么用 xff1f 6 5 unique唯一键的作用以及使用6 6 唯一键
  • 7:数据库设计思维-MySQL

    目录 7 1 数据库设计的基本概要7 2 实体和实体之间的关系7 3 Codd第一范式 xff1a 确保每列原子7 4 Codd第二范式 xff1a 非键字段必须依赖与键字段7 5 Codd第三范式 xff1a 消除传递依赖 7 1 数据库
  • 8:单表查询-MySQL

    目录 8 1 开端8 2 select8 3 from8 4 dual8 5 where8 6 in8 7 between and8 8 is null8 9 聚合函数8 10 第三方客户端的使用8 11 like模糊查询8 12 orde
  • 9:多表查询-MySQL

    目录 9 1 union联合查询9 2 inner join内联查询9 3 inner join注意事项9 4 left join 外连接9 5 rigth join 外连接9 6 cross join 交叉连接9 7 natural jo
  • 如何在jupyter notebook中播放视频(不停地展示图片)

    在解决图像处理问题的时候 xff0c 可以利用opencv打开视频 xff0c 并一帧一帧地show出来 xff0c 但是要用到imshow xff0c 需要本地的界面支持 代码如下 span class token comment cod
  • CentOS7配置VNC远程桌面

    桌面还是有很多方便的地方 xff0c 在用U盘给电脑安装了centos7 xff08 带gnome xff09 后 xff0c 接着就需要弄远程桌面 xff08 1 xff09 安装vncserver yum y install tiger
  • 10:子查询-MySQL

    目录 10 1 子查询基本语法10 2 in 和 not in10 3 exists 和 not exists10 4 基础结束语 10 1 子查询基本语法 将一个查询的结果作为另一个查询的数据来源或判断条件 一般情况下子查询结果返回超过1
  • 11:高级部分-MySQL

    目录 xff08 一 xff09 view 视图1 开场2 view视图创建 使用以及作用3 显示视图4 更新和删除视图5 视图算法 xff1a temptable merge xff08 二 xff09 transaction 事务1 事
  • 12:企业规范约束-MySQL

    目录 12 1 库表字段约束规范12 2 索引规范12 3 SQL开发约束规范12 4 其他规范 12 1 库表字段约束规范 字段名 xff1a is vip unsigned tinyint 长度为1mysql命名是不区分大小写的 xff