zoukankan      html  css  js  c++  java
  • 关于删除有关联的数据的问题

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

    努力把老板的双手搞残废,我顶替他的双手。

  • 相关阅读:
    SQL Sever语言 存储过程及触发器
    计蒜客 挑战难题 移除数组中的重复元素
    projecteuler Sum square difference
    码农谷 求前N项之和
    projecteuler Smallest multiple
    计蒜客 挑战难题 寻找插入位置
    Largest palindrome product
    计蒜客 挑战难题 元素移除
    码农谷 球从M米高度自由下落第N次落地时反弹的高度
    挑战难题 奇怪的国家
  • 原文地址:https://www.cnblogs.com/Gaton/p/1618743.html
Copyright © 2011-2022 走看看