请问大大们数据库假删除,,怎么实现好?

2014-07-09 17:38:30 +08:00
 coke
每个表建立一个remove字段,但是需要每个查询都查remove=0,,好麻烦啊,还有其他方案吗?
6403 次点击
所在节点    程序员
10 条回复
ipconfiger
2014-07-09 17:54:29 +08:00
insert到一个镜像的删除表里
lu18887
2014-07-09 17:59:27 +08:00
分表存储,定时移走。
aggron
2014-07-09 21:34:10 +08:00
Create view xxx
as
select .... where remove=0
然后读视图了
dorentus
2014-07-09 21:42:40 +08:00
查询不都是程序生成的么,怎么会烦。。

或者你可以建立一个语义相反的字段如叫 undeleted,默认 1,删除的时候 update 成 0...
bravluna
2014-07-09 22:12:21 +08:00
可以新建一个 trigger,把删除的行移到新表中。
victor
2014-07-09 22:40:25 +08:00
创建一个字段叫 deleted_at 所有删除的记录,这个字段都是删除时候的时间。
查找记录的时候,只检索这个字段为NULL的记录集。
wangyongbo
2014-07-10 11:35:26 +08:00
如果还提供恢复功能,可以在原表添加一个字段,表明是否已经被删除。

如果不需要恢复功能,删除的数据弄到另外一个表保存。
hanwujibaby
2014-07-10 12:37:38 +08:00
@ipconfiger 这个能详细说说吗?没太看明白
zhanglp888
2014-07-10 17:19:48 +08:00
新建一个视图(create view),视图里都是remove=0的行,
查询时直接查询此视图
xuanjianfeng
2014-07-11 08:36:04 +08:00
多个标记位查询,也不算麻烦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/121786

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX