当前位置:编程学习 > JAVA >>

伪删除问题

 在数据库里加一个字段 ,0是已经删除, 1 是未删除。
但是假如添加人力信息, 第一次添加错误, 在页面进行伪删除,  标志位 已经变成0了,  之后在重新添加这次数据, 添加成功, 但是再去删除这个数据 就没法删除, 会报一个唯一约束的错误,  请大家想想这个问题怎么解决, 讨论一下!! --------------------编程问答-------------------- 把伪删除那数据,移到别的表去,那表就放,需要删除的数据(或更新) --------------------编程问答-------------------- 那如果 新建立一张表, 那所有的表都用的伪删除, 是不是每一个表都得新建立一个一样的表去存需要删除的数据(或更新);
--------------------编程问答-------------------- 把数据库表的唯一约束去掉,然后新增修改时,手动检查唯一性,检查的时候只查删除标志位是1的记录 --------------------编程问答-------------------- 数据量很大  而且ID不允许重复, 如果ID 和,伪删除的 约束去掉的话,   如果填错数据 就不能在填了,因为id在重新填的时候已经违反唯一约束了。     --------------------编程问答-------------------- 主键约束不必去掉的啊。你填错数据删除,再重新添加的话,难道主键还一样的? --------------------编程问答-------------------- 我是说 如果客户使用这个东西 , 难道客户还要去数据库查询错误数据 删掉? --------------------编程问答-------------------- 我觉得是你的主键定义欠妥,
请将具体逻辑大概帖一下,
比如主键是什么?
删除用的SQL文是什么?

我觉得用自动增加主键的话一般不会有这种问题的把 --------------------编程问答-------------------- 比如说人员增加这个问题, 数据库表的约束是  user_id 和  deleted(伪删除标志位) 
在添加的时候在增加页面进行选择人员,user_id是根据选的人自动填写在页面上。
如果第一次添加john 这个人, 有些信息添加错了,  需要删除, 点删除把deleted 改成了0 ,
在查看人员列表的时候  john这个人已经不显示在页面上了,   当重新添加john这个人的时候  deleted因为在添加的时候是1 ,所以不会发生唯一约束的错误, 但是在删除的时候  deleted在再一次删除这个数据的时候 又变成0, 所以就会发生唯一约束的错误, 现在的问题是 用一个最简单的方法去解决这个问题 --------------------编程问答-------------------- 这么考虑吧,如果你那个表的数据量不少,就考虑用一个表来维护那些伪删除,如果数据量不是很大,直接插入新数据的时候,先搜索一下,如果有,就更新或者删除,然后直接把新值插进去 --------------------编程问答-------------------- 将表中的主键都去掉, 然后加以个自增长的Id字段, 这样每一条记录都有唯一的主键了就不会出现楼主说的情况了 --------------------编程问答--------------------  不是很明白lz的逻辑 --------------------编程问答--------------------
引用 8 楼  的回复:
比如说人员增加这个问题, 数据库表的约束是  user_id 和  deleted(伪删除标志位) 
在添加的时候在增加页面进行选择人员,user_id是根据选的人自动填写在页面上。
如果第一次添加john 这个人, 有些信息添加错了,  需要删除, 点删除把deleted 改成了0 ,
在查看人员列表的时候  john这个人已经不显示在页面上了,   当重新添加john这个人的时候  d……
有满意的答案时候说一声 --------------------编程问答-------------------- 两种方案 一种建立一张新表
 把伪删除添加进去
   
 还有一张修改一下唯一性 
把伪删除添加的字段和联合你唯一性的字段联合在一起 --------------------编程问答-------------------- 用更新啊,你再次添加的 人员 如果库里有唯一约束的那条记录,就修改那条记录不完事了么 --------------------编程问答-------------------- 伪删除其实就是一个数据更新的过程,应该不会出现你所说的这种情况,你是不是除了设主键为唯一约束外还有其他的唯一约束啊。如果有把其他的唯一约束去掉 --------------------编程问答-------------------- "但是假如添加人力信息, 第一次添加错误, 在页面进行伪删除, 标志位 已经变成0了, 之后在重新添加这次数据, 添加成功, 但是再去删除这个数据 就没法删除" 
你能添加(insert or update?)成功说明你的唯一键是没有问题的(我是按insert理解的)
删除的时候删除条件多加一个标志位就可以成功删除了 --------------------编程问答-------------------- 增加没有业务含义的主键,去掉之前设置的唯一约束。 --------------------编程问答--------------------
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,