数据库:删除或不删除记录

标签 database database-design

我不认为我是唯一对此感到疑惑的人。您通常对数据库行为进行哪些练习?您是否更喜欢从数据库中物理删除记录?还是只用“已删除”标志或 bool 列来标记记录以表示记录是事件的还是非事件的更好?

最佳答案

这绝对取决于您数据库的实际内容。如果您使用它来存储 session 信息,那么一定要在 session 过期(或关闭)时立即删除它,您不希望那些垃圾随处可见。因为它不能真正再次用于任何实际目的。

基本上,您需要问自己,我是否需要恢复这些信息?就像 SO 上已删除的问题一样,它们绝对应该标记为“已删除”,因为我们积极允许取消删除。我们也可以选择将其显示给选定的用户,无需太多额外工作。

如果您没有主动寻求完全恢复数据,但仍希望保留它以用于监视(或类似)目的。我建议您找出(当然在可能的范围内)聚合方案,然后将其推到另一个表。这将使您的主表清除“已删除”数据,并使您的辅助表针对监控目的(或您想到的任何内容)进行优化。

有关时间数据,请参阅:http://talentedmonkeys.wordpress.com/2010/05/15/temporal-data-in-a-relational-database/

关于数据库:删除或不删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/502501/

相关文章:

java - 制作更好的 android sqlite 查询

mysql - 将 NSURLConnection 替换为 NSURLSession 以下载和解析 json 提要

sql - 是否有在表末尾开始搜索的 SQL ANSI 方法?

database - 数据库表中的排序列

sql - 数据库设计用户表拆分或单一

database - 微软 Access : programmatically rename columns

database - 微软 Access : index optimisation

mysql - 一个小错误...

mysql - 20,000,000 个表自身连接太慢

php - 将我的数据库数据与特定日期进行比较