共计 3679 个字符,预计需要花费 10 分钟才能阅读完成。
自动写代码机器人,免费开通
本篇文章给大家分享的是有关 MySQL 建表规范有哪些,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。
一、MySQL 建表规范 1.1、准入规范级别
必须:为强制要求,必须遵守,如有特殊需求需要评审
强烈建议:尽量遵守,如无法遵守请给出备注说明
建议:为最佳实践,开发人员可以根据实际情况有所调整
1.2、设计类核心规则
表字符集选择 UTF8【必须】
生产库存储引擎使用 INNODB 【必须】
不在数据库中存储图片、文件,不使用大文本类型【必须】
不使用外键,由程序保证数据一致性【必须】
禁止使用存储过程、触发器 【必须】
每张表数据量控制在 2000W 以下,如预计会超出,需提前做好拆分或者归档迁移计划【强烈建议】
1.3、命名规范
库名、表名、字段名、索引名使用小写字母, 以下划线_分割【必须】
库名、表名、字段名、索引名不使用保留字(关键字)【必须】
库名、表名、字段名不超过 15 个字符,需见名知意【建议】
索引命名:【强烈建议】
唯一索引:“ux_表名_字段名前 3 字母 [_字段名前 3 字母]”
非唯一索引:“ix_表名_字段名前 3 字母 [_字段名前 3 字母]”
1.4、字段类规范
所有字段均定义为 NOT NULL【必须】
字符串统一单引号引用,而不是双引号【必须】
使用 UNSIGNED 存储非负整数【必须】
使用 DECIMAL 存储精确浮点数【必须】
使用 TINYINT 来代替 ENUM 类型【必须】
拆分 TEXT、BLOB 类型字段,或者独立建表【必须】
使用 UNSIGNED INT 存储 ipv4 地址,而不是 CHAR(15)【强烈建议】
非中文字段使用 varchar 存储变长字符串【强烈建议】
尽可能将字符转化为数字 存储【建议】
使用 TIMESTAMP 存储操作时间 *【建议】
1.5、索引类规范
单张表索引数量不超过 5,单个索引字段数不超过 5 【强烈建议】
避免冗余索引【强烈建议】
重要的 SQL 必须被索引【强烈建议】
UPDATE、DELETE 语句的 WHERE 条件列
ORDER BY、GROUP BY、DISTINCT 的字段
多表 JOIN 的字段
主键的选择要慎重【强烈建议】
首选使用非空的唯一键,其次选择自增列或发号器
不使用更新频繁的列,尽量不选择字符串列,不使用 UUID MD5 HASH、
能不建立索引尽量不用索引 【强烈建议】
不在 null 列上加索引
不在低基数列上建立索引,例如“性别”
二、建表 SQL 审核平台 2.1、说明
此系统为了学习与减轻 DBA 的审核建表 SQL 的工作而做。达到自动审核基本规则问题
1 优点:
1 减少了 DBA 手动审核表的工作
2 平台化操作,方便
3 通过 python 自动匹配与审核规范
2 缺点:
1、只有建表 SQL 审核
2、比较简单,后期可以使用 inception,来审核建表 SQL+ 上线 SQL+ 备份等,请关注博客 http://blog.itpub.net/28823725/ 后期会调研与应用
3 审核说明:
利用 python 程序来分析
分为:error,suggest 错误类别
按字段错误进行展示
4 其他说明:
1 此系统写于 2015 年 6 月初左右,为了学习 inception 与 python 为做,分享此文章只为了学习与交流
另 Inception 没开源多久;对比 inception 的请轻喷哈~
2 后期会出 Inception 的相关文章
2.2、平台流程图
2.3、搭建
1 环境搭建
django 环境搭建忽略,可参考我博客的其他文章,里面有详细的部署命令
python2.7 环境搭建
忽略
平台搭建
cd /chunlei/django
创建项目:
django-admin.py startproject createsql_check
会产生目录 createsql_check
cd /chunlei/django/createsql_check
ls
createsql_check
manage.py
2 设置配置文件
cd /chunlei/django/createsql_check/createsql_check
vi settings.py
ALLOWED_HOSTS = [可以访问的 IP 地址,也可以写 * 即不限制]
INSTALLED_APPS = [
django.contrib.admin ,
django.contrib.auth ,
django.contrib.contenttypes ,
django.contrib.sessions ,
django.contrib.messages ,
django.contrib.staticfiles ,
createsql_check ,
]
EMPLATES = [
{
BACKEND : django.template.backends.django.DjangoTemplates ,
DIRS : [/chunlei/chunlei/django/createsql_check/createsql_check/templates],
APP_DIRS : True,
OPTIONS : {
context_processors : [
django.template.context_processors.debug ,
django.template.context_processors.request ,
django.contrib.auth.context_processors.auth ,
django.contrib.messages.context_processors.messages ,
],
},
},
]
TIME_ZONE = Asia/Shanghai
3、设置 django 的 url 文件
from django.conf.urls import include, url
from createsql_check.views import createcheck_create_table_check
from createsql_check.views import createcheck_create_sql
from createsql_check.views import createcheck_get_dba_error_suggest
from createsql_check.views import createcheck_to_mail
from createsql_check.views import to_input_confirm_info
from createsql_check.views import to_confirm
urlpatterns = [
url(r ^createcheck_create_table_check/$ ,createcheck_create_table_check),
url(r ^createcheck_create_sql/$ ,createcheck_create_sql),
url(r ^createcheck_get_dba_error_suggest/$ ,createcheck_get_dba_error_suggest),
url(r ^createcheck_to_mail/$ ,createcheck_to_mail),
url(r ^createcheck_to_input_confirm_info/$ ,to_input_confirm_info),
url(r ^createcheck_to_confirm/$ ,to_confirm),
]
4 创建目录
cd /chunlei/django/createsql_check
mkdir check_html
mkdir log
cd /chunlei/django/createsql_check/createsql_check
5 配置 163 邮箱:
注:之前使用的是公司的邮件服务,此系统搭建与百度云,就配置 163 邮箱服务了
将授权码配置到邮件服务即可
6 开启
cd /chunlei/django/createsql_check
python manage.py runserver IP:port
2.4、界面及操作
1 RD 审核建表 SQL 界面
测试建表 SQL
create table table_test (id int,name1 varchar(50),primary key(id));2 自动分析问题
3 填写表相关信息
RD 确认 ok,填写表相关信息,提交给 DBA
4 提交信息总览
RD 提交信息总览,默认发送 DBA,也可以填写抄送邮件接收人
5 发送给 DBA
6 DBA 接收邮件
7 DBA 确认
点击邮件的 DBA 确认
填写库表信息,说明等,点击通过 / 拒绝
提交结果
以上就是 MySQL 建表规范有哪些,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。
向 AI 问一下细节