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左右,再多的话 ...
随机推荐
- 【uoj#244】[UER #7]短路 CDQ分治+斜率优化dp
题目描述 给出 $(2n+1)\times (2n+1)$ 个点,点 $(i,j)$ 的权值为 $a[max(|i-n-1|,|j-n-1|)]$ ,找一条从 $(1,1)$ 走到 $(2n+1,2n ...
- 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别(续)
由于原作者主要写window上的线程,而我主要学习android,所以本文将分析android方面多线程. 1.Thread: public void Thread1(){ Thread a = ne ...
- BZOJ1564 NOI2009二叉查找树(区间dp)
首先按数据值排序,那么连续一段区间的dfs序一定也是连续的. 将权值离散化,设f[i][j][k]为i到j区间内所有点的权值都>=k的最小代价,转移时枚举根考虑是否修改权值即可. #includ ...
- Mac OS X 10.11.1下搭建Python3.4 + PyQt5.5.1 +Eric6.1.1开发平台
由于Python易学.开源.面向对象.可移植性高.库丰富的特点,近期开始学习Python.百度了解了各款Python IDE后,还是认为Eric比较适合我,所以踏上了安装Eric坎坷之路,从选定工具到 ...
- 框架----Django之文件上传
一.文件上传 1. 浏览器访问 http://127.0.0.1:8000/f1/ http://127.0.0.1:8000/f2/ 2. urls from django.conf.urls im ...
- Java 8十个lambda表达式案例【转】
1. 实现Runnable线程案例 使用() -> {} 替代匿名类: //Before Java 8: new Thread(new Runnable() { @Override public ...
- HDU--1874
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 分析:SPFA|Dijkastra. #include<iostream> #inc ...
- linux命令行设置git提示符
http://note.youdao.com/noteshare?id=3b6b2ee0925964928fd63d2c51e6bcef
- duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)
转载请说明原出处,谢谢:http://blog.csdn.net/zhuhongshu/article/details/42580877 之前我写的程序使用阴影时,一直是使用codeproject网站 ...
- Covariance 协方差分析
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...