本篇文章給大家分享的是有關(guān)建表規范有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習,希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著(zhù)小編一起來(lái)看看吧。
必須:為強制要求,必須遵守,如有特殊需求需要評審
強烈建議:盡量遵守,如無(wú)法遵守請給出備注說(shuō)明
建議:為最佳實(shí)踐,開(kāi)發(fā)人員可以根據實(shí)際情況有所調整
表字符集選擇UTF8 【必須】
生產(chǎn)庫存儲引擎使用INNODB 【必須】
不在數據庫中存儲圖片、文件,不使用大文本類(lèi)型【必須】
不使用外鍵,由程序保證數據一致性【必須】
禁止使用存儲過(guò)程、觸發(fā)器 【必須】
每張表數據量控制在2000W以下 ,如預計會(huì )超出,需提前做好拆分或者歸檔遷移計劃【強烈建議】
庫名、表名、字段名、索引名使用小寫(xiě)字母,以下劃線(xiàn)_分割 【必須】
庫名、表名、字段名、索引名不使用保留字 (關(guān)鍵字)【必須】
庫名、表名、字段名不超過(guò)15個(gè)字符,需見(jiàn)名知意 【建議】
索引命名:【強烈建議】
唯一索引:“ux_表名_字段名前3字母[_字段名前3字母]”
非唯一索引:“ix_表名_字段名前3字母[_字段名前3字母]”
所有字段均定義為NOT NULL 【必須】
字符串統一單引號引用,而不是雙引號【必須】
使用UNSIGNED存儲非負整數 【必須】
使用DECIMAL存儲精確浮點(diǎn)數 【必須】
使用TINYINT來(lái)代替ENUM類(lèi)型 【必須】
拆分TEXT、BLOB類(lèi)型字段,或者獨立建表 【必須】
使用UNSIGNED INT存儲ipv4 地址,而不是CHAR(15) 【強烈建議】
非中文字段使用varchar存儲變長(cháng)字符串 【強烈建議】
盡可能將字符轉化為數字 存儲【建議】
使用TIMESTAMP存儲操作時(shí)間 *【建議】
單張表索引數量不超過(guò)5,單個(gè)索引字段數不超過(guò)5 【強烈建議】
避免冗余索引 【強烈建議】
重要的SQL必須被索引 【強烈建議】
UPDATE、DELETE語(yǔ)句的WHERE條件列
ORDER BY、GROUP BY、DISTINCT的字段
多表JOIN的字段
主鍵的選擇要慎重 【強烈建議】
首選使用非空的唯一鍵, 其次選擇自增列或發(fā)號器
不使用更新頻繁的列,盡量不選擇字符串列,不使用UUID MD5 HASH、
能不建立索引盡量不用索引 【強烈建議】
不在null列上加索引
不在低基數列上建立索引,例如“性別”
此系統為了學(xué)習與減輕DBA的審核建表SQL的工作而做。達到自動(dòng)審核基本規則問(wèn)題
<1>優(yōu)點(diǎn):
<1>減少了DBA手動(dòng)審核表的工作
<2>平臺化操作,方便
<3>通過(guò)python自動(dòng)匹配與審核規范
<2>缺點(diǎn):
<1>、只有建表SQL審核
<2>、比較簡(jiǎn)單,后期可以使用inception,來(lái)審核建表SQL+上線(xiàn)SQL+備份等,請關(guān)注博客 http://blog.itpub.net/28823725/ 后期會(huì )調研與應用
<3>審核說(shuō)明:
利用python程序來(lái)分析
分為:error,suggest錯誤類(lèi)別
按字段錯誤進(jìn)行展示
<4>其他說(shuō)明:
<1>此系統寫(xiě)于2015年6月初左右,為了學(xué)習inception 與python 為做,分享此文章只為了學(xué)習與交流
另Inception沒(méi)開(kāi)源多久;對比inception的請輕噴哈~
<2>后期會(huì )出Inception的相關(guān)文章
<1>環(huán)境搭建
django環(huán)境搭建
忽略,可參考我博客的其他文章,里面有詳細的部署命令
python2.7環(huán)境搭建
忽略
平臺搭建
cd /chunlei/django
創(chuàng )建項目:
django-admin.py startproject createsql_check
會(huì )產(chǎn)生目錄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 = ['可以訪(fǎng)問(wèn)的IP地址,也可以寫(xiě)*即不限制']
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>創(chuàng )建目錄
cd /chunlei/django/createsql_check
mkdir check_html
mkdir log
cd /chunlei/django/createsql_check/createsql_check
<5>配置163郵箱:
注:之前使用的是公司的郵件服務(wù),此系統搭建與百度云,就配置163郵箱服務(wù)了
將授權碼配置到郵件服務(wù)即可
<6>開(kāi)啟
cd /chunlei/django/createsql_check
python manage.py runserver IP:port
<1>RD審核建表SQL界面
測試建表SQL
create table table_test (id int,name1 varchar(50),primary key(id));
<2>自動(dòng)分析問(wèn)題
<3>填寫(xiě)表相關(guān)信息
RD確認ok,填寫(xiě)表相關(guān)信息,提交給DBA
<4>提交信息總覽
RD提交信息總覽,默認發(fā)送DBA,也可以填寫(xiě)抄送郵件接收人
<5>發(fā)送給DBA
<6>DBA接收郵件
<7>DBA確認
點(diǎn)擊郵件的"DBA確認"
填寫(xiě)庫表信息,說(shuō)明等,點(diǎn)擊通過(guò)/拒絕
提交結果
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站