Database 不删除CRUD应用程序

Database 不删除CRUD应用程序,database,crud,software-design,Database,Crud,Software Design,你好 我有一个应用程序,可以创建、读取和更新记录,但不会删除任何记录。这是因为客户端不希望删除任何记录。你认为这是一个可以接受的软件设计吗 提前感谢我想我们仍然需要删除,因为有些记录我们不想再看到了删除这里只是关于逻辑删除(软删除),我们设置删除字段为true。被删除的记录仍然驻留在数据库中,我们可以随时在以后检索它 这是一种常见的设计,因为如今存储不再是一个大问题。这是一个非常普通的要求。他们需要这样做是有充分理由的。首先,他们可能需要能够捕获时间点数据。例如,销售代表的评估可能基于出席其演示

你好

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


提前感谢

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


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

这是一个非常普通的要求。他们需要这样做是有充分理由的。首先,他们可能需要能够捕获时间点数据。例如,销售代表的评估可能基于出席其演示文稿的人员中有多少人是公司想要的目标客户或没有目标客户。因此,如果John Smith不再是目标,而是在活动举行的3月份,则您不希望删除John Smith,而是希望显示开始和结束日期

您可能不想删除记录还有一些法规/法律原因。例如,在会计系统中,即使不正确的成本永远不会被删除,它们也会以负数分录退出。这是为了让审计员能够跟踪所发生的确切行动

有时会质疑需求,但这不是其中之一。确保不挖掘任何记录是完全正确的。事实上,如果这是一个要求,我会在每个表上放置一个delete触发器,以确保没有记录可以被删除。有一些方法不是从应用程序中删除的,因此跳过这一步是不负责任的。您也可以考虑是否需要审计。
我会确保每个表都有活动记录的视图,并确保开发人员只使用视图(除非他们实际上需要软删除的记录),并且不会因为忘记放入where子句而导致错误,从而只获取活动记录

只要他们有一个无限大的硬盘,那么是的。这是真的。我提供了“删除”记录的功能,但实际上它只是隐藏记录,并允许他们在需要时检索记录。