关于删除有关联的数据的问题

系统 1406 0

从开始工作到现在已经开发过好几个系统。在每个系统中,关于删除有主外键关系的数据的功能我一直把握的不好,这是一个一直困挠我的问题。之前我对于这个问题我一般以假删除做处理。像系统字典里的类型这样的数据,和它相关联的表肯定有N多个,如果做级联删除的话,肯定不现实,万一客户误操作的话,那就完蛋了。所以我一般做伪删除处理,隐藏伪删除的类别,但与之相关的其它数据还是让它显示的,这样做就会让客户觉得很迷糊,想已经删除了这一类别怎么还会在这里出现,而且逻辑上也说不过去;如果我把相关的数据也隐藏的话,那这样就跟级联删除相关数据效果一样了,同样是不能看见相关的数据,且这样会出现很多垃圾数据(对于非重要的数据)和添加新数据时增加的工作量(对于不能重名的数据)。如果把删除功能做成这样,当客户删除一数据里,如有相关的数据则提示他“已有相关数据,先删除相关数据再删除此数据”,这样做就消除了误删的可能性和垃圾数据的积累,但这样做可想而知的工作量,像类别这样的表,跟它相关的表可能会有几十张之多,有次一系统我这样做了,都做的我头都大了(虽然是写在存储过程里都是一些count()的语句)。现在我有一想法就是利用数据库里的主外键约束,删除数据时会出现报错,然后用程序捕获(try{}catch{})错误,判断错误是否是由约束引起的,如果则提示给客户,这样就解决了所有上述所有麻烦,不过不知道这样效率会怎样,有没有哪位高手这样做过或者有更好的办法解决这一事情,请大家帮忙。。。先在此真诚的感谢…

关于删除有关联的数据的问题


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论