【发布时间】:2014-09-22 23:45:21
【问题描述】:
我更喜欢从逻辑上而不是物理上删除数据库中的记录。用“已删除”标志标记记录更好还是使用时间戳更好?
例如,我们可以为每个需要执行逻辑删除的表添加一个额外的DateTime 字段。因此,在删除时,您只需更新字段,例如...
UPDATE Client SET deleted = GETDATE() where Client.CID = @cid
如果它应该被取消删除...
UPDATE Client SET deleted = NULL where Client.CID = @cid
所以典型的选择语句看起来像......
SELECT * FROM client WHERE CID = @cid AND deleted IS NULL
我的主要要求是删除的行应该能够恢复并且应该能够轻松实现。
【问题讨论】:
-
我只会使用标志,但问题将归结为意见。
标签: sql sql-server database ado.net sql-delete