gpt4 book ai didi

mysql - 从不删除条目?好主意?通常?

转载 作者:IT老高 更新时间:2023-10-28 23:53:50 27 4
gpt4 key购买 nike

我正在设计一个系统,但我认为让最终用户能够删除数据库中的条目并不是一个好主意。我是这么认为的,因为通常最终用户一旦获得管理员权限,最终可能会在数据库中弄得一团糟,然后求助于我来修复它。

当然,如果他们被设置为管理员,他们将需要能够删除条目,或者至少认为他们做到了。

所以,我在想所有数据库中的条目应该有一个“事件”字段。如果他们试图删除一个条目,它只会将标志设置为“false”或类似的东西。然后会有某种 super 管理员,就是我公司的团队,可以改变这个字段。

我已经在我工作的另一家公司看到过这种情况,但我想知道这是否是个好主意。我可以只进行常规数据库备份,然后在它们出错时回滚,添加此字段会增加所有查询的复杂性。

你怎么看?我应该那样做吗?您在您的应用程序中使用这种技巧吗?

最佳答案

在我们的一个数据库中,我们区分了 transactionaldictionary 记录。

简而言之,transactional 记录是您在现实生活中无法回滚的东西,例如来自客户的电话。您可以更改调用者的姓名、状态等,但您不能自行关闭调用。

Dictionary 记录是您可以更改的内容,例如将 city 分配给客户。

Transactional 记录和导致它们的东西永远不会被删除,而 dictionary 记录可以被删除。

通过“导致它们的事物”,我的意思是,一旦记录出现在可以导致 transactional 记录的业务规则中,该记录也变成 transactional.

就像,一个 city 可以从数据库中删除。但是,当出现“向Moscow的所有客户发送SMS”的规则时,城市也成为transactional记录,否则我们会无法回答“为什么发送此 SMS”的问题。

区分的经验法则是:这只是我公司的业务吗?

如果我的一位员工根据数据库中的数据做出决定(例如,他根据某项管理决策做出报告,然后数据报告基于消失),则认为可以删除这些数据。

但是,如果该决定影响了与客户的一些直接行动(例如打电话、弄乱客户的余额等),那么导致这些决定的所有内容都会被永久保留。

它可能因一种商业模式而异:有时,甚至可能需要记录内部数据,有时可以删除影响外部世界的数据。

但是对于我们的业务模型,上面的规则运行良好。

关于mysql - 从不删除条目?好主意?通常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/820466/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com