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

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