mysql变量命名规则_MySQL命名、设计及使用规范

导语

最近在看MySQL相关的内容,整理如下规范,作为一名刚刚学习MySQL的菜鸟,整理的内容非常的基础,中间可能涉及到有错误的地方,欢迎批评指正,看到有错误的地方期望看官留言。

数据库环境

dev:开发环境,开发可读写,可修改表结构。开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事。

qa:测试环境,开发可读写,开发人员可以通过工具修改表结构。

sim:模拟环境,开发可读写,发起上线请求时,会先在这个环境上进行预执行,这个环境也可供部署上线演练或压力测试使用。

real:生产数据库从库(准实时同步),只读环境,不允许修改数据,不允许修改表结构,供线上问题查找,数据查询等使用。

online:线上环境,开发人员不允许直接在线上环境进行数据库操作,如果需要操作必须找DBA进行操作并进行相应记录,禁止进行压力测试。

这些环境的机器,一定要做到权限划分明确,读写帐号分离,并且有辨识度,能区分具体业务。例如用户名w_account,r_ account 分别代表读、写账号,account是读写账号。

命名规范

基本命名原则

使用有意义的英文词汇,词汇中间以下划线分隔。(不要用拼音)

只能使用英文字母,数字,下划线,并以英文字母开头。

库、表、字段全部采用小写,不要使用驼峰式命名。

避免用ORACLE、MySQL的保留字,如desc,关键字如index。

命名禁止超过32个字符,须见名之意,建议使用名词不是动词

数据库,数据表一律使用前缀

临时库、表名必须以tmp为前缀,并以日期为后缀

备份库、表必须以bak为前缀,并以日期为后缀

为什么库、表、字段全部采用小写?

在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。

Windows下是不区分大小写的。

Linux下大小写规则:

数据库名与表名是严格区分大小写的;

表的别名是严格区分大小写的;

列名与列的别名在所有的情况下均是忽略大小写的;

变量名也是严格区分大小写的;

如果已经设置了驼峰式的命名如何解决?需要在MySQL的配置文件my.ini中增加 lower_case_table_names = 1即可。

表命名

同一个模块的表尽可能使用相同的前缀,表名称尽可能表达含义。所有日志表均以 log_ 开头

字段命名

表达其实际含义的英文单词或简写。布尔意义的字段以“is_”作为前缀,后接动词过去分词。

各表之间相同意义的字段应同名。各表之间相同意义的字段,以去掉模块前缀的表名_字段名命名。

外键字段用表名_字段名表示其关联关系。

表的主键一般都约定成为id,自增类型,是别的表的外键均使用xxx_id的方式来表明。

索引命名

非唯一索引必须按照“idx_字段名称_字段名称[_字段名]”进行命名

唯一索引必须按照“uniq_字段名称_字段名称[_字段名]”进行命名

约束命名

主键约束:pk_表名称。

唯一约束:uk_表名称_字段名。(应用中需要同时有唯一性检查逻辑。)

触发器命名

trg_表名_操作。

函数过程命名

采用动词+名词的形式表达其含义。

序列命名

seq_表名

表设计规范

1、表引擎取决于实际应用场景;日志及报表类表建议用myisam,与交易,审核,金额相关的表建议用innodb引擎。如无说明,建表时一律采用innodb引擎。myisam与innodb的区别

2、默认使用utf8mb4字符集,数据库排序规则使用utf8mb4_general_ci,(由于数据库定义使用了默认,数据表可以不再定义,但为保险起见,建议都写上)。

为什么字符集不选择utf8,排序规则不使用utf8_general_ci?

采用utf8编码的MySQL无法保存占位是4个字节的Emoji表情。为了使后端的项目,全面支持客户端输入的Emoji表情,升级编码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值