使用數(shù)據(jù)庫的機制來確保數(shù)據(jù)的正確性
導(dǎo)讀:“數(shù)據(jù)庫的機制”的重要性是保證數(shù)據(jù)正確的***關(guān)卡,而不要圖省事,完全依賴于程序的邏輯代碼;必竟,你不能考慮到所有的可能情況,特別是大量并發(fā)的情況下;雖然出錯的概率也許只有萬分之一,但只要存在,遲早會發(fā)生。 數(shù)據(jù)庫設(shè)計好了,很多事情自然水到渠成。數(shù)據(jù)庫的工作要非常的細(xì)致,正確性是一定要得到保證的。
做軟件開發(fā),特別是做數(shù)據(jù)維護(hù)的工程師,遇到最多的問題應(yīng)都可歸結(jié)為數(shù)據(jù)庫的不一致性和完整性問題。多年的軟件開發(fā),看過很多SQL/Oracle/Access的數(shù)據(jù)庫,包括臺灣MES廠商、國內(nèi)很多共享軟件等,基本沒有設(shè)置Key、FK,很多的軟件連范式二都達(dá)不到;數(shù)據(jù)庫的一致性和完整性往往是通過程序邏輯實現(xiàn),必然在并發(fā)的情況下,在萬分之一的可能情況下,發(fā)生數(shù)據(jù)的不一致性和完整性問題。
分析過MS的CRM、RP、MOSS等專業(yè)性的軟件,不難發(fā)現(xiàn)其在數(shù)據(jù)庫設(shè)計方面邏輯的嚴(yán)密性。結(jié)合自己的經(jīng)驗,得出:業(yè)務(wù)邏輯是通過代碼實現(xiàn)的,但是要通過“數(shù)據(jù)庫的機制”來確保邏輯的正確性,而不能完全依賴于程序代碼,必竟有很多的情況是程序軟件中所無法預(yù)料的;只能通過“數(shù)據(jù)庫機制”做***的檢查,NG時返回失??;而不是怕用戶一時的抱怨,造成后期的排錯和數(shù)據(jù)維護(hù)量。
當(dāng)然,使用“數(shù)據(jù)庫機制”必然帶來下述的影響:
1、一定程度上影響性能
2、增加程序開發(fā)的難度:符合“數(shù)據(jù)庫的機制”的要求,必然要作更多的檢查;否則可能造成無法新增和修改。所以,很多開發(fā)人員為了圖簡單和趕進(jìn)度,當(dāng)然是能省就省。再說了,走人后,出現(xiàn)的問題又不用自己來解決,關(guān)鍵是當(dāng)前的問題能糊弄過去就萬事大吉了。
要允分使用“數(shù)據(jù)庫機制”,至少是滿足下述兩者之一
一是開發(fā)人員的自覺性,不能圖省事;特別是架構(gòu)師或數(shù)據(jù)庫開發(fā)工程師
二是Leader是要有這種意識,否則.....
那么,這里的“數(shù)據(jù)庫機制”指什么呢?不外是主鍵、外鍵、事務(wù)、唯一索引、范式、級聯(lián)更新等
經(jīng)驗表明,多數(shù)的應(yīng)用程序問題都是圍著數(shù)據(jù)庫轉(zhuǎn);所以從事軟件開發(fā)和開發(fā)管理人員,一定要學(xué)的是“數(shù)據(jù)庫的設(shè)計藝術(shù)”這門必修課,才能事半功倍。
【編輯推薦】