等考三級(jí)數(shù)據(jù)庫設(shè)計(jì)經(jīng)驗(yàn)談5:各種小技巧-完-

字號(hào):

[前言]:一個(gè)成功的管理系統(tǒng),是由:[50% 的業(yè)務(wù) + 50% 的軟件] 所組成,而 50% 的成功軟件又有 [25% 的數(shù)據(jù)庫 + 25% 的程序] 所組成,數(shù)據(jù)庫設(shè)計(jì)的好壞是一個(gè)關(guān)鍵。如果把企業(yè)的數(shù)據(jù)比做生命所必需的血液,那么數(shù)據(jù)庫的設(shè)計(jì)就是應(yīng)用中重要的一部分。有關(guān)數(shù)據(jù)庫設(shè)計(jì)的材料汗牛充棟,大學(xué)學(xué)位課程里也有專門的講述。不過,就如我們反復(fù)強(qiáng)調(diào)的那樣,再好的老師也比不過經(jīng)驗(yàn)的教誨。所以我歸納歷年來所走的彎路及體會(huì),并在網(wǎng)上找了些對(duì)數(shù)據(jù)庫設(shè)計(jì)頗有造詣的專業(yè)人士給大家傳授一些設(shè)計(jì)數(shù)據(jù)庫的技巧和經(jīng)驗(yàn)。精選了其中的 60 個(gè)佳技巧,并把這些技巧編寫成了本文,為了方便索引其內(nèi)容劃分為 5 個(gè)部分:
    第一部分介紹了設(shè)計(jì)數(shù)據(jù)庫之前12個(gè)基本技巧,包括命名規(guī)范和明確業(yè)務(wù)需求等(數(shù)據(jù)庫設(shè)計(jì)經(jīng)驗(yàn)談(1) );第二部分介紹設(shè)計(jì)數(shù)據(jù)庫表24個(gè)指南性技巧,涵蓋表內(nèi)字段設(shè)計(jì)以及應(yīng)該避免的常見問題等(數(shù)據(jù)庫設(shè)計(jì)經(jīng)驗(yàn)談 (2) );第三部分主要介紹選擇鍵和索引,包含10個(gè)技巧專門涉及系統(tǒng)生成的主鍵的正確用法,還有何時(shí)以及如何索引字段以獲得佳性能等(數(shù)據(jù)庫設(shè)計(jì)經(jīng)驗(yàn)談 (3) )。第四部分主要討論保證數(shù)據(jù)完整性,如何保持?jǐn)?shù)據(jù)庫的清晰和健壯,如何把有害數(shù)據(jù)降低到小程度(數(shù)據(jù)庫設(shè)計(jì)經(jīng)驗(yàn)談 (4)),本次第五部分主要介紹不包括在以上 4 個(gè)部分中的其他技巧,五花八門,有了它們希望你的數(shù)據(jù)庫開發(fā)工作會(huì)更輕松一些。
    第 5 部分 - 各種小技巧
    文檔、文檔、文檔
    對(duì)所有的快捷方式、命名規(guī)范、限制和函數(shù)都要編制文檔。
    采用給表、列[字段]、觸發(fā)器等加注釋的數(shù)據(jù)庫工具。是的,這有點(diǎn)費(fèi)事,但從長(zhǎng)遠(yuǎn)來看,這樣做對(duì)開發(fā)、支持和跟蹤修改非常有用。
    取決于你使用的數(shù)據(jù)庫系統(tǒng),可能有一些軟件會(huì)給你一些供你很快上手的文檔。你可能希望先開始在說,然后獲得越來越多的細(xì)節(jié)?;蛘吣憧赡芟M芷谛缘念A(yù)排,在輸入新數(shù)據(jù)同時(shí)隨著你的進(jìn)展對(duì)每一部分細(xì)節(jié)化。不管你選擇哪種方式,總要對(duì)你的數(shù)據(jù)庫文檔化,或者在數(shù)據(jù)庫自身的內(nèi)部或者單獨(dú)建立文檔。這樣,當(dāng)你過了一年多時(shí)間后再回過頭來做第 2 個(gè)版本,你犯錯(cuò)的機(jī)會(huì)將大大減少。
    使用常用英語(或者其他任何語言)而不要使用編碼
    為什么我們經(jīng)常采用編碼(比如 9935a 可能是‘青島啤酒’的供應(yīng)代碼,4xf788-q 可能是帳目編碼)?理由很多。但是用戶通常都用英語進(jìn)行思考而不是編碼。工作 5 年的會(huì)計(jì)或許知道 4xf788-q 是什么東西,但新來的可就不一定了。在創(chuàng)建下拉菜單、列表、報(bào)表時(shí)好按照英語名排序。假如你需要編碼,那你可以在編碼旁附上用戶知道的英語。
    保存常用信息
    讓一個(gè)表專門存放一般數(shù)據(jù)庫信息非常有用。我常在這個(gè)表里存放數(shù)據(jù)庫當(dāng)前版本、近檢查/修復(fù)(對(duì) foxpro)、關(guān)聯(lián)設(shè)計(jì)文檔的名稱、客戶等信息。這樣可以實(shí)現(xiàn)一種簡(jiǎn)單機(jī)制跟蹤數(shù)據(jù)庫,當(dāng)客戶抱怨他們的數(shù)據(jù)庫沒有達(dá)到希望的要求而與你聯(lián)系時(shí),這樣做對(duì)非客戶機(jī)/服務(wù)器環(huán)境特別有用。
    測(cè)試、測(cè)試、反復(fù)測(cè)試
    建立或者修訂數(shù)據(jù)庫之后,必須用用戶新輸入的數(shù)據(jù)測(cè)試數(shù)據(jù)字段。重要的是,讓用戶進(jìn)行測(cè)試并且同用戶一道保證你選擇的數(shù)據(jù)類型滿足商業(yè)要求。測(cè)試需要在把新數(shù)據(jù)庫投入實(shí)際服務(wù)之前完成。
    檢查設(shè)計(jì)
    在開發(fā)期間檢查數(shù)據(jù)庫設(shè)計(jì)的常用技術(shù)是通過其所支持的應(yīng)用程序原型檢查數(shù)據(jù)庫。換句話說,針對(duì)每一種終表達(dá)數(shù)據(jù)的原型應(yīng)用,保證你檢查了數(shù)據(jù)模型并且查看如何取出數(shù)據(jù)。
    microsoft visual foxpro 設(shè)計(jì)技巧
    對(duì)復(fù)雜的 microsoft visual foxpro 數(shù)據(jù)庫應(yīng)用程序而言,可以把所有的主表放在一個(gè)數(shù)據(jù)庫容器文件里,然后增加其他數(shù)據(jù)庫表文件和裝載同原有數(shù)據(jù)庫有關(guān)的特殊文件。根據(jù)需要用這些文件連接到主文件中的主表。比如數(shù)據(jù)輸入、數(shù)據(jù)索引、統(tǒng)計(jì)分析、向管理層或者政府部門提供報(bào)表以及各類只讀查詢等。這一措施簡(jiǎn)化了用戶和組權(quán)限的分配,而且有利于應(yīng)用程序函數(shù)(存儲(chǔ)過程)的分組和劃分,從而在程序必須修改的時(shí)候易于管理。