本節書摘來自華章計算機《需求設計:建構使用者想要和需要的産品》一書中的第2章,第2.6節,作者: [英] 克裡斯·布裡頓(chris britton) 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
資料庫設計應該與使用者界面設計分開來做,其理由有三:
同一個資料庫可能會由多個應用程式使用,這些應用程式的需求各不相同,我們必須對此進行協調。
管理人員可能要搜尋資料,營銷人員可能要用資料做研究,這些使用者所需的資料,與應用程式在運作之中所需的資料可能有所不同。在該階段,資料庫的設計者通常應該把沒有包含在情境設計之中的那些需求考慮進來。
大公司之中的應用程式開發者,可能已經知道自己想要的是哪些資料,但卻不知道在公司的這麼多資料庫裡面,到底哪一個資料庫才存放有這些資料。
資料庫的設計應該由公司裡面的中心資料庫團隊來做,或者說,至少要展現出他們對該設計方案的強烈影響,因為那個團隊應該知道與公司裡的全部資料有關的各種知識。(要想做業務分析,就需要了解公司的資料源。)對于資料庫中的資料來說,想要真正了解其本質,是不太容易的,因為我們必須要從公司的各種業務和技術名詞與技術定義之中找到思路,并且還要考慮到不同的資料來源所給出的資料,其含義也有所不同。很多年前,筆者曾與一家啤酒廠打交道,他們想要知道市面上有多少家銷售商。可是,三個資料庫卻給出了三種答案,其中一個資料庫統計了酒店,另一個沒有統計,其中一個資料庫計算了體育會所,另一個沒有計算,這種資料上的差異就是由此類問題所引起的。
對資料庫的設計方案進行分析時,要檢查下列三個方面:
每一份資料都應該由某個應用程式建立,由某個應用程式使用,或是用來做資料分析,并且由某個程式進行删除或歸檔。
如果要對資料進行複制(在大公司中,幾乎肯定要對某些資料做複本),那麼需要用一套機制來確定資料之間互相一緻。
如果資料用來表示外部世界之中的資訊(如一位客戶),那麼應該有機制確定該資訊準确無誤。
這些檢查項目,與早前對情境設計做分析時所進行的檢查有所重疊,但這一次我們更關注實作層面,而且還有可能引入一些新的資料表。