從開(kāi)始工作到現(xiàn)在已經(jīng)開(kāi)發(fā)過(guò)好幾個(gè)系統(tǒng)。在每個(gè)系統(tǒng)中,關(guān)于刪除有主外鍵關(guān)系的數(shù)據(jù)的功能我一直把握的不好,這是一個(gè)一直困撓我的問(wèn)題。之前我對(duì)于這個(gè)問(wèn)題我一般以假刪除做處理。像系統(tǒng)字典里的類(lèi)型這樣的數(shù)據(jù),和它相關(guān)聯(lián)的表肯定有N多個(gè),如果做級(jí)聯(lián)刪除的話(huà),肯定不現(xiàn)實(shí),萬(wàn)一客戶(hù)誤操作的話(huà),那就完蛋了。所以我一般做偽刪除處理,隱藏偽刪除的類(lèi)別,但與之相關(guān)的其它數(shù)據(jù)還是讓它顯示的,這樣做就會(huì)讓客戶(hù)覺(jué)得很迷糊,想已經(jīng)刪除了這一類(lèi)別怎么還會(huì)在這里出現(xiàn),而且邏輯上也說(shuō)不過(guò)去;如果我把相關(guān)的數(shù)據(jù)也隱藏的話(huà),那這樣就跟級(jí)聯(lián)刪除相關(guān)數(shù)據(jù)效果一樣了,同樣是不能看見(jiàn)相關(guān)的數(shù)據(jù),且這樣會(huì)出現(xiàn)很多垃圾數(shù)據(jù)(對(duì)于非重要的數(shù)據(jù))和添加新數(shù)據(jù)時(shí)增加的工作量(對(duì)于不能重名的數(shù)據(jù))。如果把刪除功能做成這樣,當(dāng)客戶(hù)刪除一數(shù)據(jù)里,如有相關(guān)的數(shù)據(jù)則提示他“已有相關(guān)數(shù)據(jù),先刪除相關(guān)數(shù)據(jù)再刪除此數(shù)據(jù)”,這樣做就消除了誤刪的可能性和垃圾數(shù)據(jù)的積累,但這樣做可想而知的工作量,像類(lèi)別這樣的表,跟它相關(guān)的表可能會(huì)有幾十張之多,有次一系統(tǒng)我這樣做了,都做的我頭都大了(雖然是寫(xiě)在存儲(chǔ)過(guò)程里都是一些count()的語(yǔ)句)。現(xiàn)在我有一想法就是利用數(shù)據(jù)庫(kù)里的主外鍵約束,刪除數(shù)據(jù)時(shí)會(huì)出現(xiàn)報(bào)錯(cuò),然后用程序捕獲(try{}catch{})錯(cuò)誤,判斷錯(cuò)誤是否是由約束引起的,如果則提示給客戶(hù),這樣就解決了所有上述所有麻煩,不過(guò)不知道這樣效率會(huì)怎樣,有沒(méi)有哪位高手這樣做過(guò)或者有更好的辦法解決這一事情,請(qǐng)大家?guī)兔Α!!O仍诖苏嬲\(chéng)的感謝…
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
