客户端

MySQL数据库使用规范

所在版块: 后端技术 2017-12-13 17:16 [复制链接] 查看: 2813|回复: 0
  • DDL规范:
    • 数据库名、表名和字段名都小写,需要区分词意以“_”连接
    • 禁止使用关键字做为库、表、字段名
    • 表,字段名需要有注释,注释简单明了
    • 必须有主键,主键需要为int/bigint unsigned
    • 主键ID 是和业务无关的自增id
    • 不允许使用外键
    • 字段不允许为NULL,需为not null default 0(or default '')  (text/blob  类型除外)
    • 索引名为idx_开头,唯一键以uk_开头,后以字段名(或字段名缩写)拼接
    • 使用字符集 utf8/utf8mb4
    • 非特殊情况,不允许指定与库不一致的编码规则与排序规则
    • date/datetime/timestamp默认值使用合法的时间,建议统一使用"1971-1-1 00:00:00"
    • 密码生成规则:数字大小写字母特殊字符混合的生成策略
  • DML规范:
    • [重要] 调用方需要有错误重试机制,毕竟网络都不能保障绝对100%的可用,所以调用端一定要有容错机制!
    • [重要] 长连接需要业务自己做心跳保活!如果不做探活,那么需要有错误重试机制!
    • [重要] 长连接需要业务自己限制最大使用时间和最大复用次数,确保流量在各proxy上保持均衡,防止proxy异常恢复后负载均衡失效!
    • [重要] 线上业务查询一定要根据索引查询,避免查全表 以及 结果集较大的查询
    • [重要] delete/udpate 必须带where(强制要求)
  • 数据链路规范:

    • 分表规范
      • 分表命名必须为“表名_自然数”,分表序号前不可随意添加0,如:g_order_1,不可命名为g_order_01
      • 分表表名前缀不可重复
      • 不可多级分表(即不允许分表格式为“表名_xx_xx”,如:不可命名为g_order_01_02)
      • 表字段变更(新增、类型变更等)必须在所有分表范围内一致变更
    • 临时表命名规范
      • 临时命名必须以"temp_",以免与正式表名(含分表名)冲突
      • 不可与正式表表名重复
    • 变更操作规范
      • 字段类型不可随意变更
      • 变更字段类型必须先和数据下游使用方确认,否则可能造成数据丢失、下游数据报错等


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码关注微信公众号

QQ|Archiver|手机版|小黑屋|mwt-design ( 沪ICP备12041170号-1

GMT+8, 2024-11-24 16:18 , Processed in 0.063014 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回列表