Ema*_*sev 2 language-agnostic database-design database-schema
有时您想将数据库表记录标记为已删除而不是永久删除它,对吧?
你是怎样做的?
到目前为止,我一直在使用布尔"删除"字段,但我不确定它是否是一个很好的评论.
这就是它 - 一个布尔字段,表示记录被删除.我用过的那几次,我打电话给那个领域IsDeleted.
这通常称为逻辑删除.
您可以在报告中尊重该字段 - 这意味着将所有记录排除在外IsDeleted = true.如果你有很多表和关系,那些查询会变得有点复杂.
此外,如果您对表有唯一约束,则可能会遇到一些问题.例如,如果用户表中的用户表IsDeleted = true和电子邮件列是唯一的,则无法添加具有相同电子邮件地址的新用户.
有一些ORM会考虑这些字段 - 例如,如果存在名为"已删除"或"IsDeleted"的列,则SubSonic 2.2不会删除记录,而是将此字段设置为true.
一些相关资源:
作为替代方案,您可以添加审计表.