• mysql的一些规范


    我司的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"后缀

  • 相关阅读:
    【Redis】跳跃表原理分析与基本代码实现(java)
    小鹤音形指引
    Maven
    算法思维(长期更)
    多路平衡树之红黑树
    多路平衡树之B树
    多路平衡树之2-3查找树
    栈与队列
    树基本概念
    Vue学习
  • 原文地址:https://www.cnblogs.com/JhoneLee/p/10615802.html
Copyright © 2020-2023  润新知