我更喜欢逻辑地而不是物理地从数据库中删除记录。是用“已删除”标志来标记记录更好,还是使用时间戳更好?
例如,我们可以向需要执行逻辑删除的每个表添加额外的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
我的主要要求是删除的行应该能够恢复并且应该能够轻松实现。
最佳答案
这是一种常见的模式,名称为“DeletedAt”或“DeletionDate”、日期类型的列用于指示该行是否已被删除。所以答案是肯定的。
关于sql - 带时间戳的逻辑删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25051983/