当前位置: 首页 > 面试题库 >

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

戎兴言
2023-03-14
问题内容

我正在设计一个系统,但我认为让最终用户删除数据库中的条目并不是一个好主意。我认为是这样,因为最终用户常常被授予管理员权限,最终可能使数据库混乱,然后求助于我修复它。

当然,如果将它们设置为admin,他们将需要能够删除条目或至少认为它们确实如此。

因此,我当时认为数据库中的 所有 条目都应有一个“活动”字段。如果他们尝试删除条目,则只会将标志设置为“
false”或类似的内容。然后会有某种超级管理员可以成为我公司的团队来改变这个领域。

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

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


问题答案:

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

简而言之,transactional记录是您在现实生活中无法回滚的事情,例如来自客户的呼叫。您可以更改呼叫者的姓名,状态等,但是您无法关闭呼叫本身。

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

Transactional记录 和导致 记录的 事物 从未删除,而记录dictionary可以被删除。

所谓“导致它们的事物”,是指该记录一旦出现在可导致transactional记录的业务规则中,该记录也将变为transactional

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

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

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

但是,如果该决定影响到客户的一些立即行动(例如打电话,打乱客户的余额等),那么导致这些决定的一切都会永远保留。

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

但是对于我们的业务模型,上述规则行之有效。



 类似资料:
  • 问题内容: 我编写了用于删除android日历中所有条目的简单代码,但并未删除任何内容。 源代码: 问题答案: 我这样称呼它:

  • 问题内容: 我喜欢NodeJS的某些功能,特别是JQuerification,通过socket.io的websocket兼容性,我不能与JSP一起使用的视图和CSS引擎(当然还有异步调用)。至少据我所知。因此,我计划在后端为Java的情况下创建应用程序,前端由NodeJS生成。前端表单将数据发送到NodeJS,后者将通过NodeJS和Java后端之间的套接字连接将其传递到Java后端。因此,Nod

  • 我正在我们的项目中实施DynamoDB。我们必须将大型数据字符串放入数据库中,所以我们将数据拆分为小块,并插入多行,其中只有一个属性值发生了更改—这是字符串的一部分。一列(范围键)包含多个零件。插入和选择数据对于大小字符串都非常有效。问题是删除项目。我了解到,当您想要删除某个项时,需要为该项指定主键(哈希键或哈希键和范围键-取决于表)。但如果我想删除对其中一个属性具有特定值的项目,该怎么办?我是否

  • 我是使用Kafka的新手,我有一个问题。如果我知道主题、偏移量和分区,我可以只删除一条消息吗?如果没有,还有什么其他选择吗?

  • 问题内容: 我正在使用Spring Data Repository保存新条目。每个条目的TTL为10秒。 当我保存带有索引的条目时,这就是我在Redis中得到的 到期后,我仍然有数据: 没有任何TTL。 他们为什么不删除自己?我该怎么办? 问题答案: Spring Data Redis存储库使用多个Redis功能将域对象持久存储在Redis中。 域对象主要存储在哈希()中。任何有效期都直接应用于哈

  • 我正在用spring数据存储库保存新的条目。我对每个条目都有10秒的TTL。 当我用索引保存一个条目时,下面是我在Redis中得到的结果 到期后,我还有数据: 没有任何TTL。 为什么他们不删除自己?我怎么能那么做?