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