将已删除的行存储在表中

在SQL Server表中有一个
is_deleted
列是一个好习惯,还是有另一种处理这个问题的方法? 我能想到的另一个解决方案是删除该行并将其插入到另一个表中以删除行。 什么是最好的解决方案? 提前致谢。     
已邀请:
要看。 我会使用
IsDeleted
字段,然后每个时不时地运行一个存档过程,将这些行移到一个存档表中,这样它们就不会占用通常查询的表,但仍然可以在需要时检索。     
我会说使用IsDeleted标志而不是删除行(或者IsEnabled,我用于User表之类的东西)。存储很便宜,只是因为行不再有效并不意味着数据毫无价值。 我通常拥有的另一件事是RowCreatedDateStamp列,它已经多次使用了。     
回答你的问题可能要晚一点,但是你应该真正阅读Udi Dahan的帖子,使用像
IsDeleted
栏这样的“软删除”。     
这真的取决于你的情况。将记录标记为已删除的I / O比实际删除要少(没有约束检查,没有页面合并等),但它也会在代码中产生许多额外的复杂性,因为现在您的应用程序需要处理软删除到处记录。所有查询都必须考虑到这一点,因为有些人甚至可能希望返回已删除的记录,有些则严格不能等。 另一个需要注意的重要事项是,由于法规或客户要求,您的应用程序可能需要进行严格删除。     

要回复问题请先登录注册