mysql的一些规范
我司的mysql规范,值得牢记
一.禁止内容
- 表字段类型 不推荐使用enum,set,blob,text等类型
- 表中所有字段都不能为空,需要设置not null属性,可以给默认值
- 表的主键列值禁止被更新,可以进行删除操作。
- 程序中不能试用中间表和备份表 表名以tmp_开头或者 bak_开头
- 数据库账号的授权需要具体到授权服务器的IP,禁止使用机器名和%
- 禁止使用insert、delete或update语句进行用户权限的设置,清理和修改操作
- 禁止使用old_password进行加密,数据库参数old_passwords必须置为OFF
- 禁止使用全文检索功能
- 禁止使用事件(EVENT)功能
- 禁止在mysql中使用用户自定义变量
- 不推荐使用外键,临时表,视图,自定义函数,存储过程以及触发器
- SELECT语句必须指定具体字段名称,禁止写成*
- SELECT语句禁止使用UNION,推荐使用UNION ALL
- INSERT语句必须指定具体的字段名称
- 禁止写成多层子查询嵌套的SQL语句,推荐改写成表顺序连接的格式
- 禁止在INSERT|UPDATE|DELETE|REPLACE语句中进行多表连接操作
- WHERE 子句中禁止只使用全模糊的LIKE条件进行查找,必须有其他查询条件
- WHERE子句中的索引列或组合索引前导列上不能使用函数
二.数据库设计原则
1.数据库名称 小写 字母 数字 _ ,不超32字符 例如: test_db
2.数据库字符编码 utf8或者gbk
3.表结构 :表名与字段名 小写 字母 数字 _ ,数据表量少推荐表名为 数据库缩写+表功能名 如 test_dict,量多按功能划分 如资源区可以用 r_dict,数据区可以用 d_dict。
创建表时必须显式指定字符集,与库一致。
创建表时必须显式指定表存储引擎类型。
表中的自增列(auto_increment属性)推荐使用bigint类型
状态status、类型type等字段推荐使用tinytint或者smallint类型
IP地址字段推荐使用int类型
使用表中必须有时间字段create_time和最后更新时间字段update_time
4.索引的设计原则
InnoDB类型表必须要有主键列
索引类型必须为BTREE
主键的名称以"pk_"开头
唯一键以"uk_"开头
普通索引以"idx_"开头
分区表的分区字段(partition-key)必须有索引
5. 数据库账号
读写账号以"_w"后缀,只读账号以"_r"后缀
mysql的一些规范的更多相关文章
- MySQL建表规范与常见问题
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确 ...
- Mysql手册—基本规范与数据类型
第十章 本章主要介绍了一些语法规范,如 对于表,函数,字段,在Linux上大小写敏感,Windows和MacOS上却不敏感: Mysql是如何识别函数的及用户在定义自定义函数时命名要求:通过 ...
- mysql数据库开发规范
对规范的遵守可用二八原则,不要教条.为满足实际需求 可忽视部分规范. 1.索引规范 *目标 |--利用最小的索引成本找到需要的行记录 *原则 |--做前缀匹配 |--选择区分度高的列做前缀索引列 |- ...
- MySQL数据库开发规范知识点
前言: 设计规范更多的是为了确保数据库设计的合理性.为了项目最终的协调稳定性,而命名规范则更多的是为了确保设计的正式和统一. 约定优先于配置(Convention Over Configuration ...
- 【转】拍拍网2015年mysql最新开发规范
1.命名规范 (1)库名.表名.字段名必须使用小写字母,并采用下划线分割. (2)库名.表名.字段名禁止超过32个字符. (3)库名.表名.字段名必须见名知意.命名与业务.产品线等相关联. (4)库名 ...
- MySQL之开发规范
一..数据库命名规范 1.所有数据库对象名称必须使用小写字母并用下划线分割 2.所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 3.数据库对象的命 ...
- MySQL建表规范
一.基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省 ...
- Mysql推荐使用规范
一.基础规范 使用InnoDB存储引擎支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 推荐使用utf8mb4字符集无需转码,无乱码风险, 支持emoji表情以及部分不常见汉字 ...
- Mysql推荐使用规范(转)
一:基础规范 1.使用InnoDB存储引擎 支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 2.推荐使用utf8mb4字符集 无需转码,无乱码风险, 支持emoji表情以及部 ...
- Mysql 数据库开发规范
设计范式参看,DDL与DDL 库表基础规范 1.注释 每个表要添加注释,对 status 型需指明主要值的含义,如”0-离线,1-在线” 2.表的字段数量 单表字段数一般考虑上限为 30左右,再多的话 ...
随机推荐
- Vue.js 判断对象属性是否存,不存在添加
Vue.set是可以对对象添加属性的,这里item对象添加一个checked属性 //if(typeof item.checked=='undefined'){if(!this.item.checke ...
- 对Spark2.2.0文档的学习1-Cluster Mode Overview
Cluster Mode Overview Link:http://spark.apache.org/docs/2.2.0/cluster-overview.html Spark应用(Applicat ...
- 多realm以及jdbcRealm配置
多realm配置 public class MyRealm1 implements Realm { public String getName() { return "myrealm1&qu ...
- oracle job定时执行存储过程
JOB定时跑插入语句1.建插入数据的存储过程create or replace procedure report_web asV_START_DATE DATE;V_END_DATE DATE;b ...
- Oracle 多表关联并且批量修改
描述:A表有 id,or_id 字段,B表有 id,code 字段 A表有 or_id 与B表的 id 关联,现要将A.or_id 替换成 B.code 数据 UPDATE AS ...
- 【容斥原理,莫比乌斯反演】用容斥替代莫比乌斯反演第二种形式解决gcd统计问题
名字虽然很长.但是其实很简单,对于这一类问题基本上就是看你能不能把统计的公式搞出来(这时候需要一个会推公式的队友) 来源于某次cf的一道题,盼望上紫的我让潘学姐帮我代打一道题,她看了看跟我说了题解,用 ...
- 【BZOJ2216】Lightning Conductor(动态规划)
[BZOJ2216]Lightning Conductor(动态规划) 题面 BZOJ,然而是权限题 洛谷 题解 \(\sqrt {|i-j|}\)似乎没什么意义,只需要从前往后做一次再从后往前做一次 ...
- 【SYZOJ279】滑稽♂树(树套树)
[SYZOJ279]滑稽♂树(树套树) 题面 SYZOJ CJOJ 题目描述 zzsyz实验楼里面种了一棵滑稽树,只有滑稽之力达到大乘期的oier才能看到.虽然我们看不到,但是还是知道一些信息: 这真 ...
- java规范(三)-----判空----方法内的为空判断
一般我们判空或者有判断条件时 都是使用 if(条件成立){ 执行代码 } 这样的逻辑. 但是如果对象的字段很深层次时或者条件很多时就容易形成很多个{}的情况,这样就容易分不出哪个花括号属于哪部分.如下 ...
- 【bzoj3295】动态逆序对
Portal --> bzoj3295 Solution 虽然说这个可能原本是一道愉快的树套树但是 没有强制在线并且是三维限制那就大力cdq分治啊! 看到"按照某个顺序依次删除 ...