您是应该删除MySQL表中的条目还是将名为is_deleted的属性设置为1?

时间:2015-10-11 06:37:07

标签: mysql database-design

我意识到这个问题没有一个答案。但我希望有人可以说一下有关一个属性的优缺点,该属性应该跟踪一个条目是否被删除。

我能想到的一个专业人员是你能够看到被删除的条目",例如被删除的可以恢复的用户等等。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这个问题没有一个正确答案。这实际上取决于数据库的用途是什么,表存储信息的内容以及强制执行的任何数据保护要求。

在数据库中留下无用的数据只会浪费空间,因此删除非常有用。但如果您将来需要访问该数据,那么实际上不删除它是一个好主意!

如果出现以下情况,您可能需要考虑不删除数据(并将其标记为已删除/无效):

  • 您需要跟踪表/数据库中的更改(历史记录);
  • 您需要能够恢复/取消删除数据;
  • 不同的用户拥有修改数据的不同权限;
  • 数据非常关键;
  • 很多其他潜在案例! ;)