5. 采用視圖
為了在你的數(shù)據(jù)庫和你的應用程序代碼之間提供另一層抽象,你可以為你的應用程序建立專門的視圖而不必非要應用程序直接訪問數(shù)據(jù)表。這樣做還等于在處理數(shù)據(jù)庫變更時給你提供了更多的自由。
6. 給數(shù)據(jù)保有和恢復制定計劃
考慮數(shù)據(jù)保有策略并包含在設計過程中,預先設計你的數(shù)據(jù)恢復過程。采用可以發(fā)布給用戶/開發(fā)人員的數(shù)據(jù)字典實現(xiàn)方便的數(shù)據(jù)識別同時保證對數(shù)據(jù)源文檔化。編寫在線更新來“更新查詢”供以后萬一數(shù)據(jù)丟失可以重新處理更新。
7. 用存儲過程讓系統(tǒng)做重活
解決了許多麻煩來產(chǎn)生一個具有高度完整性的數(shù)據(jù)庫解決方案之后,我所在的團隊決定封裝一些關聯(lián)表的功能組,提供一整套常規(guī)的存儲過程來訪問各組以便加快速度和簡化客戶程序代碼的開發(fā)。在此期間,我們發(fā)現(xiàn)3GL 編碼器設置了所有可能的錯誤條件,比如以下所示:
SELECT Cnt = COUNT (*)
FROM [<Table>]
WHERE [<primary key column>] = <new value>
IF Cnt = 0
BEGIN
INSERT INTO [<Table>]
( [< primary key column>] )
VALUES ( <New value> )
END
ELSE
BEGIN
<indicate duplication error>
END
而一個非3GL 編碼器是這樣做的:
INSERT INTO [<Table>]
( [< primary key column>] )
VALUES
( <New value> )
IF @@ERROR = 2627 -- Literal error code for Primary Key Constraint
BEGIN
<indicate duplication error>
END
第2 個程序簡單多了,而且事實上,利用了我們給數(shù)據(jù)庫的功能。雖然我個人不喜歡使用嵌入文字(2627)。但是那樣可以很方便地用一點預先處理來代替。數(shù)據(jù)庫不只是一個存放數(shù)據(jù)的地方,它也是簡化編碼之地。
8. 使用查找
控制數(shù)據(jù)完整性的最佳方式就是限制用戶的選擇。只要有可能都應該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數(shù)據(jù)的一致性。某些公共數(shù)據(jù)特別適合查找:國家代碼、狀態(tài)代碼等。
第5 部分— 各種小技巧
1. 文檔、文檔、文檔
對所有的快捷方式、命名規(guī)范、限制和函數(shù)都要編制文檔。
采用給表、列、觸發(fā)器等加注釋的數(shù)據(jù)庫工具。是的,這有點費事,但從長遠來看,這樣做對開發(fā)、支持和跟蹤修改非常有用。
取決于你使用的數(shù)據(jù)庫系統(tǒng),可能有一些軟件會給你一些供你很快上手的文檔。你可能希望先開始在說,然后獲得越來越多的細節(jié)。或者你可能希望周期性的預排,在輸入新數(shù)據(jù)同時隨著你的進展對每一部分細節(jié)化。不管你選擇哪種方式,總要對你的數(shù)據(jù)庫文檔化,或者在數(shù)據(jù)庫自身的內部或者單獨建立文檔。這樣,當你過了一年多時間后再回過頭來做第2 個版本,你犯錯的機會將大大減少。
2. 使用常用英語(或者其他任何語言)而不要使用編碼
為什么我們經(jīng)常采用編碼(比如9935A 可能是墨水筆的供應代碼,4XF788-Q 可能是帳目編碼)?理由很多。但是用戶通常都用英語進行思考而不是編碼。工作5 年的會計或許知道4XF788-Q 是什么東西,但新來的可就不一定了。在創(chuàng)建下拉菜單、列表、報表時最好按照英語名排序。假如你需要編碼,那你可以在編碼旁附上用戶知道的英語。
3. 保存常用信息
讓一個表專門存放一般數(shù)據(jù)庫信息非常有用。我常在這個表里存放數(shù)據(jù)庫當前版本、最近檢查/修復(對Access)、關聯(lián)設計文檔的名稱、客戶等信息。這樣可以實現(xiàn)一種簡單機制跟蹤數(shù)據(jù)庫,當客戶抱怨他們的數(shù)據(jù)庫沒有達到希望的要求而與你聯(lián)系時,這樣做對非客戶機/服務器環(huán)境特別有用。
4. 測試、測試、反復測試
建立或者修訂數(shù)據(jù)庫之后,必須用用戶新輸入的數(shù)據(jù)測試數(shù)據(jù)字段。最重要的是,讓用戶進行測試并且同用戶一道保證你選擇的數(shù)據(jù)類型滿足商業(yè)要求。測試需要在把新數(shù)據(jù)庫投入實際服務之前完成。
5. 檢查設計
在開發(fā)期間檢查數(shù)據(jù)庫設計的常用技術是通過其所支持的應用程序原型檢查數(shù)據(jù)庫。換句話說,針對每一種最終表達數(shù)據(jù)的原型應用,保證你檢查了數(shù)據(jù)模型并且查看如何取出數(shù)據(jù)。
6. Access 設計技巧
對復雜的Microsoft Access 數(shù)據(jù)庫應用程序而言,可以把所有的主表放在一個數(shù)據(jù)庫文件里,然后增加其他數(shù)據(jù)庫文件和裝載同原有數(shù)據(jù)庫有關的特殊函數(shù)。根據(jù)需要用這些函數(shù)連接到主文件中的主表。比如數(shù)據(jù)輸入、數(shù)據(jù)QC、統(tǒng)計分析、向管理層或者政府部門提供報表以及各類只讀查詢等。這一措施簡化了用戶和組權限的分配,而且有利于應用程序函數(shù)的分組和劃分,從而在程序必須修改的時候易于管理。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。