zoukankan      html  css  js  c++  java
  • 【MySQL】MySQL数据库设计规范

    命名规范

      一. 基本规范 

    1. 原则:清晰明了,简洁准确,见名知意
    2. 组成:英文字母, 下划线, 阿拉伯数字
    3. 长度:最长64个字符,建议不超过32, 以免对后序的操作带来不便
    4. 命名方式。
    5. 名称中除下划线、数字的部分,要使用英文单词或英文短语或相应缩写,不推荐使用汉语拼音
    6. 禁止使用MySQL关键字和保留字,见附录-关键字和保留字
    7. 禁止出现数字开头
    8. 英文字母使用小写形式,避免因操作系统或mysql服务配置的不同引起的问题
    9. 名词使用单数
    10. 多个单词用下划线分隔
    11. 禁止两个下划线中间只出现数字

     二. 具体规范

      1. 数据库库命名

        1)使用项目名缩写作为前缀,如游戏项目: game_xxx。

        2)库名长度控制在10个字符内,超出10个字符时,尽量使用单词缩写

        3)备份库必须以bak_为前缀,以日期为后缀 例:bak_video_20180307。

        4)临时库必须以tmp_为前缀,以日期为后缀 例:tmp_video_20180307;

      2. 表命名

        1)用系统或模块的英文名的缩写作为前缀,优先使用模块名

        2)表名长度控制在15个字符内,超出15个字符时,尽量使用单词缩写

        3)备份表必须以bak_为前缀,以日期为后缀 例:bak_video_user_20180307。

        4)临时表必须以tmp_为前缀,以日期为后缀 例:tmp_video_user_20180307。

      3. 字段命名

        1)避免出现数字

        2)除其它表的主键外,不需要添加前缀

        3)字段名长度控制在20个字符内,超出20个字符时,使用单词缩写

      4. 索引命名

        1)主键索引名为pk_字段名,pk_primary key。

        2)非唯一索引 按照idx_字段名称_字段名称[_字段名]进行命名, idx_ index。

        3)唯一索引 按照uk_字段名称_字段名称[_字段名] 进行命名, uk_ unique key。

        4)如索引名过长,使用缩写

     三. 注释

      1. 表注释

       1)每个表必须要有注释

       2)描述数据表用途。

       3)注释不超过30个字符。

      2. 字段注释

        1)每个字段必须要有注释

       2)描述该字段的用途及可能存储的内容,字段的取值含义或者范围

       3)如果是枚举类型,将该字段中使用的内容都定义出来

       4)注释不超过30个字符

        这个就是一个比较规范的创建表语句及注释

       

     三. MySQL字符集

      1. 字符集推荐

       1) 非特殊需求,所有字符存储与表示,均使用utf8编码

       2)解读:通用,无乱码风险,汉字3字节,英文1字节

       3)如果需要存储表情符号,字段选择utf8mb4utf8的超集)来进行存储,有些特殊字符串可以保存,比如IOS的表情

       2. 创建对象的字符集

         2.1 字符集和校对规则的4个级别 (从上到下,级别递减)

        1)服务器级别

        2)数据库级别

          3)表级别、列级别

        4)连接级别

          2.2. 更低级别的设置会继承高级别的设置。

        2.3. 通用规则

            1)先为服务器或者数据库选择一个合理的字符集,然后根据不同的实际情况,让某个列选择自己的字符集

          2)字符集能表达的字符范围 utf8 > gbk > gb2312 > latin1。

            3)字符集中的ci Case Insensitive (大小写不敏感)的缩写, cs Case Sensitive (大小写敏感)的缩写

             4)字符集中 bin 表示用二进制存储数据,用编码值进行比较,区分大小写

        3. 控制serverclient端交互通信的字符集

       1)character_set_servermysql server默认字符集

         2)character_set_database:数据库默认字符集

       3)character_set_clientMySQL server假定客户端发送的查询使用的字符集

       4)character_set_connectionMySQL Server接收客户端发布的查询请求后,将其转换为character_set_connection变量指定的字符集

       5)character_set_resultsmysql server把结果集和错误信息转换为character_set_results指定的字符集,并发送给客户端

       6)character_set_system:系统元数据(字段名等)字符集。


     

  • 相关阅读:
    关于 拼接 url 连接 参数的问题(爬虫)。
    date 时间确定
    JavaScript跨域解决方法大全
    JS的 try catch使用心得
    博客要搬家啦!
    bzoj 3676: [Apio2014]回文串 -- 回文自动机
    bzoj 2631: tree -- LCT
    bzoj 2002: [Hnoi2010]Bounce 弹飞绵羊 -- LCT
    bzoj 2648: SJY摆棋子&&2716: [Violet 3]天使玩偶 --kdtree
    bzoj 1978: [BeiJing2010]取数游戏 game -- dp
  • 原文地址:https://www.cnblogs.com/songgj/p/11376128.html
Copyright © 2011-2022 走看看