VC6 + ODBC做的一个MIS小程序中,要删除一个系别设置表中某条记录,但他的ID被专业表(这个系开设的某个专业), 班级表(属于这个系的某个班)引用作为外码,在删除时报错,这个该怎么处理呢?是提示用户不让删除呢,还是先把其它表中用这个ID作外码的记录删除掉,然后再把这条记录也删除,这个系不存在了,其开设的专业和班级也就不存在了,就像树根被删除,所有子树全部被删那样呢??大家在碰到这种情况时是怎么处理的?
调试欢乐多
首先提示用户该系别设置正被班级或专业使用,是否确认删除?如果确认删除
当然必须作为一个事务,先删除对应班级、专业在删除系别设置,可做一触发器或
外键关联删除
如果你这个功能是为了应付学校的院系合并什么的,那首先要具体和学校的老师,也就是你的客户多交流,搞清楚学校是怎么处理这个问题的。
至于你说“两个系的专业和班级设置很多都不一样,我想直接转移是不太可能的吧”这样的问题应该先在现实生活中找解决办法,毕竟数据结构和算法是对现实的反映,现实生活中无解的问题计算机技术也解决不了。
如果如你所说,只是为了测试删除功能,又要保留旧数据的话,另建一个同构的测试用临时表,删除前把要删的信息备份过去就是了,原数据就可以简单咯嚓掉。