很多系统应用中,数据是不能直接删除的,一是为了数据的关联性,二是为了数据的安全性。
本人在设计数据的删除操作的时候,采用了如下的方法:
1、假设数据存在关联性,数据不能删除,并提示不能删除的原因。这种方法开销比较大,需要进行所有关联数据表的信息查询。
比如表B的字段1与表A的字段1关联,当删除表A的记录时,先检查表B是否存在与该记录相关的记录,如果存在,则不能删除表A的这条记录
2、假设数据不存在关联,则将该条记录标志为已删除,通过一个字段来标识记录是否删除,实际上并没有被删除。这样做的目的是为了防止数据被恶意删除,或者在以后有用的时候再进行恢复。
这种方法的最大问题是当增加或者修改别的信息的时候,如果关键字与被删除的信息相同时,会发生冲突,这样就必须对被删除的信息进行处理,是覆盖被删除的信息然后恢复还是修改被删除信息的关键信息,这都是比较麻烦的事情。
大家对“删除”操作有什么高见,敬请发表各自的意见。


最新回复
1、关联性的检查
2、新增和修改的信息与被删除信息关键字相同的处理
2、一般来说删除某条记录,只需要将此记录标记为“已删除”即可。因为在一段时间内,这条记录还可能关联到很多其它的表的记录。如论坛的“回收站”。
3、确实需要物理删除才用到DELETE,如论坛的“清空回收站”。