CRUD应用程序没有删除

时间:2014-09-30 10:18:29

标签: database crud software-design

美好的一天

我有一个创建,读取和更新记录但不删除任何记录的应用程序。这是因为客户端不希望删除任何记录。你认为这是一个可以接受的软件设计吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为我们仍然需要 删除 ,因为会有一些我们不想再看到的记录。 删除 这里只是逻辑删除(Soft Delete),我们设置Deleted字段为true。删除的记录仍然驻留在数据库中,我们可以随时检索它。

这是一种常见的设计,因为现在存储不再是一个大问题。

答案 1 :(得分:1)

这是一个非常普通的要求。他们需要这个有正当理由。首先,他们可能需要能够捕获时间点数据。例如,销售代表可以基于参加他的演示的人数是公司想要目标的客户的多少来评估。因此,如果John Smith不再是目标,而是在3月举行活动时,您不想删除John Smith,您可能希望显示开始和结束日期。

还有一些法规/法律原因可能导致您不想删除记录。例如,在会计系统中,即使不正确的成本也不会被删除,它们会以否定的条目退回。这是审计人员可以遵循发生的确切行动。

有时候质疑要求,但这不是其中之一。确保没有记录被删除是完全有效的。实际上,如果这是一个要求,我会在每个表上放置一个删除触发器,以确保不能删除任何记录。有一些方法可以删除不是来自应用程序,因此跳过此步骤是不负责任的。您还可以考虑是否需要审核。

我会确保查看每个表的活动记录,并确保开发人员只使用该视图(除非他们实际上需要软删除的记录),并且不要因忘记输入而导致错误where子句只获取活动的子句。