我刚开始使用专业编程,我的经理倾向于指示我在我们使用的所有数据库表中保持创建,修改和删除日期。我想知道为企业应用程序保留这些字段是否有意义。我之所以这么说,是因为所有的例子,我曾经在网上阅读的教程,书籍从来没有这样的字段,而且它增加了复杂性,因为每次我必须与实体合作,我必须确保我使用实体.DeleteDate == null
感谢您的建议
答案 0 :(得分:2)
这可能是一件好事。我建议你做的第一件事就是了解观点。视图只是存储查询。 视图是你的朋友。
例如,您不必在基表中查找“Where Deleted not null”,而是可以创建一个名为viewActiveWhatever的视图,并对视图进行过滤,以便只生成Delete不为null的数据。请记住,观看次数是您的朋友。
软删除(标记为删除)与硬删除(Poof它真的消失了)。根据您所拥有的数据结构类型,这可能会使事情变得混乱。
不要让它变得更加困难,但有时候保留更改前的内容是很好的。因此,只需在数据行上放置修改日期,只会告诉您该行何时更改...它不会告诉您更改的内容。
现在,如果您引用的数据称为“控制数据”,您可能需要考虑保留历史表。然后,在每次更新控制表中的记录之前,将当前数据行插入历史表,然后进行更新。现在,您可以永久记录已更改的内容,并可以随时查看并查看所有更改。
如果您在存储过程中进行所有更新,这种记录保存并不困难。
答案 1 :(得分:0)
这取决于您的解决方案所涉及的业务。但是,这不应该导致你的问题。只需将此功能添加到由所有实体扩展的基类中。
答案 2 :(得分:0)
通常更好地保留您所能做的一切,然后将来您可能决定删除某些字段/记录,这是可能的。如果你不保留它,当它消失,它消失了,你永远不会得到它。如果你存储它,这些天,没有理由不存储它,因为空间成本几乎没有,你将有2年后需要提取经理要求的审计报告的数据
答案 3 :(得分:0)
迟早,需要进行某种审核。软删除有时是设计方便的问题,但通常是法律要求,任何事情都不会被删除。企业越发展,他们因某种原因被起诉的可能性就越大。将记录保存在表格中有助于何时收集法律文件。
某些百分比的人(约2%)会乐意使用您的服务一段时间,然后他们将关闭(尝试删除)他们的帐户并致电Visa / Master卡以申请欺诈。您需要记录他们的活动并将其提交给信贷人员,以便对抗该索赔;使用信用卡处理器进入“坏商家”名单非常昂贵。