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