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























