我司的mysql规范,值得牢记

一.禁止内容

  1. 表字段类型 不推荐使用enum,set,blob,text等类型
  2. 表中所有字段都不能为空,需要设置not null属性,可以给默认值
  3. 表的主键列值禁止被更新,可以进行删除操作。
  4. 程序中不能试用中间表和备份表 表名以tmp_开头或者 bak_开头
  5. 数据库账号的授权需要具体到授权服务器的IP,禁止使用机器名和%
  6. 禁止使用insert、delete或update语句进行用户权限的设置,清理和修改操作
  7. 禁止使用old_password进行加密,数据库参数old_passwords必须置为OFF
  8. 禁止使用全文检索功能
  9. 禁止使用事件(EVENT)功能
  10. 禁止在mysql中使用用户自定义变量
  11. 不推荐使用外键,临时表,视图,自定义函数,存储过程以及触发器
  12. SELECT语句必须指定具体字段名称,禁止写成*
  13. SELECT语句禁止使用UNION,推荐使用UNION ALL
  14. INSERT语句必须指定具体的字段名称
  15. 禁止写成多层子查询嵌套的SQL语句,推荐改写成表顺序连接的格式
  16. 禁止在INSERT|UPDATE|DELETE|REPLACE语句中进行多表连接操作
  17. WHERE 子句中禁止只使用全模糊的LIKE条件进行查找,必须有其他查询条件
  18. 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的一些规范的更多相关文章

  1. MySQL建表规范与常见问题

    一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确 ...

  2. Mysql手册—基本规范与数据类型

    第十章      本章主要介绍了一些语法规范,如 对于表,函数,字段,在Linux上大小写敏感,Windows和MacOS上却不敏感: Mysql是如何识别函数的及用户在定义自定义函数时命名要求:通过 ...

  3. mysql数据库开发规范

    对规范的遵守可用二八原则,不要教条.为满足实际需求 可忽视部分规范. 1.索引规范 *目标 |--利用最小的索引成本找到需要的行记录 *原则 |--做前缀匹配 |--选择区分度高的列做前缀索引列 |- ...

  4. MySQL数据库开发规范知识点

    前言: 设计规范更多的是为了确保数据库设计的合理性.为了项目最终的协调稳定性,而命名规范则更多的是为了确保设计的正式和统一. 约定优先于配置(Convention Over Configuration ...

  5. 【转】拍拍网2015年mysql最新开发规范

    1.命名规范 (1)库名.表名.字段名必须使用小写字母,并采用下划线分割. (2)库名.表名.字段名禁止超过32个字符. (3)库名.表名.字段名必须见名知意.命名与业务.产品线等相关联. (4)库名 ...

  6. MySQL之开发规范

    一..数据库命名规范 1.所有数据库对象名称必须使用小写字母并用下划线分割 2.所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 3.数据库对象的命 ...

  7. MySQL建表规范

    一.基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省 ...

  8. Mysql推荐使用规范

    一.基础规范 使用InnoDB存储引擎支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 推荐使用utf8mb4字符集无需转码,无乱码风险, 支持emoji表情以及部分不常见汉字 ...

  9. Mysql推荐使用规范(转)

    一:基础规范 1.使用InnoDB存储引擎 支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源利用率更高 2.推荐使用utf8mb4字符集 无需转码,无乱码风险, 支持emoji表情以及部 ...

  10. Mysql 数据库开发规范

    设计范式参看,DDL与DDL 库表基础规范 1.注释 每个表要添加注释,对 status 型需指明主要值的含义,如”0-离线,1-在线” 2.表的字段数量 单表字段数一般考虑上限为 30左右,再多的话 ...

随机推荐

  1. 【bzoj4182】Shopping 树的点分治+dfs序+背包dp

    题目描述 给出一棵 $n$ 个点的树,每个点有物品重量 $w$ .体积 $c$ 和数目 $d$ .要求选出一个连通子图,使得总体积不超过背包容量 $m$ ,且总重量最大.求这个最大总重量. 输入 输入 ...

  2. bzoj2314: 士兵的放置(树形DP)

    0表示被父亲控制,1表示被儿子控制,2表示被自己控制.f表示最少士兵数,g表示方案数. 转移贼难写,写了好久之后写不下去了,看了一眼题解,学习了...原来还可以这么搞 比如求f[i][1]的时候,要在 ...

  3. uoj 36 玛里苟斯

    [清华集训2014]玛里苟斯 - 题目 - Universal Online Judge k=1,2,3,4,5各占20pts是提示 应当分开考虑 k=1 拆位,如果第i位有1,则有1/2的概率xor ...

  4. uCOS-II之移植20160823

    首先我们看一下uC/OS-II的框架图: 1.配置文件修改 +------------------------------------------ |core: os_core.c |  os: os ...

  5. dTree 动态生成树

    http://luohua.iteye.com/blog/451453 dTree 主页:http://destroydrop.com/javascripts/tree/ dTree是个很方便在页面生 ...

  6. PID控制算法的C语言实现十一  模糊算法简介

    在PID控制算法的C语言实现九中,文章已经对模糊PID的实质做了一个简要说明.本来打算等到完成毕业设计,工作稳定了再着力完成剩下的部分.鉴于网友的要求和信任,抽出时间来,对模糊PID做一个较为详细的论 ...

  7. python中如何优雅续行和换行

    http://note.youdao.com/noteshare?id=8dbcb93991a89a6cfcd95580ed2198f0

  8. gcc和MinGW的异同

    cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从 ...

  9. svn常见错误

    1.svn提交报错:svn: Aborting commit:XXXXXremains in conflict 解决:说明Svn服务器上的对应内容,在你上次Update后已被别人修改了,而你也做了修改 ...

  10. [Ctsc2014]企鹅QQ

    3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description P ...