當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司
如何玩轉(zhuǎn)數(shù)據(jù)庫設(shè)計(jì)
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
鷹潭網(wǎng)站建設(shè)www.diyphp.net在日常任務(wù)中,當(dāng)我們碰到海量數(shù)據(jù)時(shí),若何從中遴選出本人想要的數(shù)據(jù)呢?是盲目標(biāo)查找,照樣追求新的處理方案亦或是經(jīng)過技巧來獲取?開拓者在設(shè)計(jì)一個(gè)數(shù)據(jù)表單時(shí),往往會(huì)遵照三條常用方式,他們以為慣例形式是設(shè)計(jì)的獨(dú)一路子。但是因?yàn)殚_拓者一開端就抱有這種心態(tài),使數(shù)據(jù)表單設(shè)計(jì)變得故步自封,障礙了它的立異。
作者Shivprasad 從平常的任務(wù)項(xiàng)目中積聚了一些經(jīng)歷,向我們引見了11款制造數(shù)據(jù)表單技巧,當(dāng)設(shè)計(jì)到數(shù)據(jù)表單制造時(shí),無妨以此來參考,以豐厚我們的使用經(jīng)歷。
Rule 1:弄清(OLTP或OLAP)使用的實(shí)質(zhì)是什么?
當(dāng)開端制造數(shù)據(jù)表單設(shè)計(jì)時(shí),起首,要剖析你設(shè)計(jì)的這個(gè)順序的實(shí)質(zhì)是什么?是事務(wù)性照樣剖析性的?你會(huì)發(fā)現(xiàn)很多開拓者會(huì)默許使用慣例化規(guī)矩,隨后才思索功能問題而不思索使用的實(shí)質(zhì)。
關(guān)于事務(wù)性和剖析性,一同來看下兩者區(qū)別。
Transactional:這種使用,用戶對(duì)CRUD較為感興致,即創(chuàng)立、讀取、更新和刪除記載。這種數(shù)據(jù),官方稱號(hào)之位OLTP。
Analytical:用戶對(duì)剖析、申報(bào)、猜測(cè)等方面感興致。這類數(shù)據(jù)庫很少有嵌入和更新。首要目標(biāo)是為了盡快獲取和剖析數(shù)據(jù)。官方稱號(hào)之為OLAP。
換句話說,假如你想以嵌入、更新、刪除為重點(diǎn),可選擇慣例化的表單設(shè)計(jì)或許創(chuàng)立一個(gè)簡略的十分規(guī)化的數(shù)據(jù)架構(gòu)。
下面是一個(gè)簡略的圖表,左側(cè)顯示稱號(hào)和地址,采用非標(biāo)準(zhǔn)化構(gòu)造設(shè)計(jì)出的一款簡略的慣例表單。
Rule 2:將數(shù)據(jù)依照邏輯思想分紅分歧的塊,讓生涯更簡略
這個(gè)規(guī)矩其實(shí)就是 “三范式” 中的第一范式。如許設(shè)計(jì)的目的,是為了當(dāng)你需求查詢套多的字符串解析功用時(shí),如子串,charindexetc,它能為你供應(yīng)這項(xiàng)功用。
例如,留意觀看下面的圖表,假如你想查詢某個(gè)學(xué)生的姓名,經(jīng)過“Koirala”和“Harisingh”來進(jìn)行區(qū)分。
因而,更好的辦法就是打破數(shù)據(jù)邏輯思想,以便我們編寫愈加簡練、輕易查詢的表單。
Rule 3:當(dāng)數(shù)據(jù)太多時(shí),rule 2不成用
開拓者們的思想有時(shí)很單一,假如你通知他們某種方法,他們會(huì)不斷這么做下去,要曉得過度的運(yùn)用會(huì)形成不用要的費(fèi)事。正如我們之前談到的rule 2,起首要進(jìn)行分化,明白本人的需求。例如,當(dāng)你看到德律風(fēng)號(hào)碼字段時(shí),你可以在ISD代碼長進(jìn)行操作區(qū)分這些德律風(fēng)號(hào)碼(直到知足你的需求)。雖然這是不錯(cuò)的辦法,但會(huì)給你帶來更多的并發(fā)癥。
Rule 4:將反復(fù)、不一致的數(shù)據(jù)視作你最大的仇敵
聚集和重構(gòu)復(fù)制數(shù)據(jù)。我比擬擔(dān)憂的不是復(fù)制數(shù)據(jù)所需求的磁盤空間而是它因而而形成的紊亂。
從下面的圖表中,“5th Standard”和“Fifth standard”意思是一樣的,你可以說是由于數(shù)據(jù)或許驗(yàn)證數(shù)據(jù)錄入到你的系統(tǒng)緣由,假如你想經(jīng)過報(bào)表來顯示他們的分歧之處,從用戶的角度開看,這長短常堅(jiān)苦的。
個(gè)中一個(gè)處理辦法就是將分歧的義務(wù)欄把一樣的數(shù)據(jù)經(jīng)過新建一個(gè)鍵入值聯(lián)接在一同。如圖。我們經(jīng)過創(chuàng)立一個(gè)新的條目“Standards”即可將數(shù)據(jù)從新排,顯示一樣的局部。
Rule 5:留意被分隔符切割的數(shù)據(jù)
前面的規(guī)矩2即“第一范式”提到防止數(shù)組反復(fù),如圖所示。假如你看到教育綱要嚴(yán)密陳列在一同,這個(gè)范疇中需求良多數(shù)據(jù)來填充,這種我們稱之為“反復(fù)數(shù)組”。假如我們必需把持這些數(shù)據(jù),單憑查詢是很堅(jiān)苦的,我甚至還疑心能否具有這個(gè)查詢功用。
這些帶分隔符的數(shù)據(jù)需求特殊留意,若何應(yīng)用更好的辦法將這些數(shù)據(jù)挪動(dòng)到一個(gè)分歧的義務(wù)欄中,以便更好的分類呢?如圖:
如圖所示,可以看到我創(chuàng)立了一個(gè)自力的教育科目條目,然后列出了與之有相聯(lián)系關(guān)系的科目。這種辦法首要合用于在教育綱要范疇,防止過多的反復(fù)和數(shù)據(jù)分隔符中。
Rule 6:留神數(shù)據(jù)依靠
察看該范疇中的局部列表。如圖,我們創(chuàng)立了roll number和standard,可以看到教育科目嚴(yán)密聯(lián)絡(luò)在一同,但與學(xué)生進(jìn)修的科目沒有直接聯(lián)系關(guān)系。假如我們想給每位學(xué)生更新教育科目,這似乎看起來是不契合邏輯的,然則經(jīng)過鍵入standard條目轉(zhuǎn)換這些數(shù)據(jù)就可到達(dá)目標(biāo)。
這個(gè)規(guī)矩通知我們“一切的鍵入都應(yīng)該依靠主鍵”。All keys should depend on the full primary key and not partially。
Rule 7:選擇派生列
假如你想進(jìn)行OLTP使用起首得挑選出派生列,在OLAP中我們需求做一些乞降,方可取得uixie很好的功能。如圖,求的均勻數(shù)需求應(yīng)用marks和subject兩列。
這個(gè)規(guī)矩被稱為第三范式,“不該該有依靠于非主鍵的列”(No columns should depend on other non-primary key columns)我小我以為是不克不及盲目運(yùn)用此規(guī)矩。假如該數(shù)據(jù)是核算過的數(shù)據(jù),看清情況然后在決議施行第三范式。
Rule 8:假如功能很要害,不要避開冗余數(shù)據(jù)
假如你急迫的思索到功能標(biāo)準(zhǔn)化問題,凡間狀況下需求銜接很多列表以及削減添加非標(biāo)準(zhǔn)化的列表以便來進(jìn)步數(shù)據(jù)圖表功能。
Rule 9:數(shù)據(jù)多、冗雜
OLAP項(xiàng)目首要是為了處置數(shù)據(jù)繁復(fù),例如,如圖所示,假設(shè)你想取得每個(gè)國度、每個(gè)用戶、每年的發(fā)賣額度。關(guān)于這種狀況,你可以創(chuàng)立一個(gè)實(shí)踐發(fā)賣列表?xiàng)l目(sales fact table)。
Rule 10:設(shè)計(jì)name value table列表
明值表意味著它有一些鍵,這些鍵被其他數(shù)據(jù)聯(lián)系關(guān)系著。如圖所示,我們需求弄清晰currency table (錢幣列)和country table(國度列),圖中鍵入值(數(shù)字局部)顯示的就是我們所需求的數(shù)據(jù)。
經(jīng)過創(chuàng)立鍵入值(Type)來顯示出分歧區(qū)域的數(shù)據(jù)。
Rule 11:無限制構(gòu)造數(shù)據(jù),自界說PK和FK
我們會(huì)常常碰著一些無限父子分級(jí)構(gòu)造的數(shù)據(jù)。例如:思索到一個(gè)多條理的營銷方案,個(gè)中一個(gè)發(fā)賣人員可以指導(dǎo)多個(gè)發(fā)賣人員。在這種狀況下,你可以運(yùn)用自界說的主鍵和設(shè)置外鍵來協(xié)助你完成一致。
您可以依據(jù)本身的項(xiàng)目需求選擇分歧的數(shù)據(jù)處置辦法。如下所示:三種慣例范式。
- 1如何玩轉(zhuǎn)數(shù)據(jù)庫設(shè)計(jì)
- 2網(wǎng)站建設(shè)之后,維護(hù)才是重中之重
- 3玩具租賃如何走出困境
- 4萬網(wǎng)云服務(wù)器,優(yōu)惠啦!!!
- 5PHP Google的translate API代碼
- 6最新動(dòng)態(tài)-久途遷新址
- 7網(wǎng)貸平臺(tái)主要運(yùn)營模式主要有兩類---傳統(tǒng)P2P模式
- 8PHP/MYSQL 查詢大數(shù)據(jù)/遍歷表
- 9企業(yè)網(wǎng)站的優(yōu)化現(xiàn)狀
- 10Windows Azure 網(wǎng)站上運(yùn)行 CakePHP
- 11租賃網(wǎng)站功能介紹
- 12企業(yè)做網(wǎng)站有沒有用?
- 13PHP 5中垃圾回收算法的演化
- 14有關(guān),PHP.ini 性能優(yōu)化
- 15企業(yè)四網(wǎng)合一網(wǎng)站升級(jí)版1
- 16網(wǎng)站建設(shè)之搜索功能強(qiáng)化升級(jí)標(biāo)準(zhǔn)
- 17JavaScript cookie詳解
- 18企業(yè)如何定位自己的企業(yè)網(wǎng)站目標(biāo)
- 19企業(yè)網(wǎng)站與其他網(wǎng)站有什么區(qū)別和差異呢!
- 20網(wǎng)站建設(shè)和營銷帶來的經(jīng)濟(jì)效益
- 21泛普軟件-U2ME網(wǎng)站設(shè)計(jì)方案計(jì)劃表
- 22評(píng)估企業(yè)站做的好壞的方法
- 23企業(yè)建站要寫簡潔的代碼
- 24玩具租賃商城系統(tǒng)需求3
- 25ecshop的數(shù)據(jù)字典
- 26如何讓您的網(wǎng)站盈利中發(fā)揮到極致
- 27如何使自己的企業(yè)網(wǎng)站和同行業(yè)的網(wǎng)站不類似沖突
- 28如何用PHP模擬QQ登錄
- 29關(guān)于編碼最佳應(yīng)用實(shí)踐
- 30世界看到你-----微信公眾平臺(tái)
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓