我不认为我是唯一对此感到疑惑的人。您通常对数据库行为进行哪些练习?您是否更喜欢从数据库中物理删除记录?还是只用“已删除”标志或 bool 列来标记记录以表示记录是事件的还是非事件的更好?
最佳答案
这绝对取决于您数据库的实际内容。如果您使用它来存储 session 信息,那么一定要在 session 过期(或关闭)时立即删除它,您不希望那些垃圾随处可见。因为它不能真正再次用于任何实际目的。
基本上,您需要问自己,我是否需要恢复这些信息?就像 SO 上已删除的问题一样,它们绝对应该标记为“已删除”,因为我们积极允许取消删除。我们也可以选择将其显示给选定的用户,无需太多额外工作。
如果您没有主动寻求完全恢复数据,但仍希望保留它以用于监视(或类似)目的。我建议您找出(当然在可能的范围内)聚合方案,然后将其推到另一个表。这将使您的主表清除“已删除”数据,并使您的辅助表针对监控目的(或您想到的任何内容)进行优化。
有关时间数据,请参阅:http://talentedmonkeys.wordpress.com/2010/05/15/temporal-data-in-a-relational-database/
关于数据库:删除或不删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/502501/