2010-05-20 81 views
4

假设我有一个简单的帮助台应用程序记录用户所做的调用。处理丢失的数据

我通常会在与呼叫相关的表格中包含这样的字段,例如,呼叫标识,说明,客户ID等

我也有客户的表格,包括客户ID,用户名,密码,全名等

现在,当用户从客户表中删除,然后内部调用之间的连接表和用户表,以查明历史上哪个用户记录了呼叫将不会产生任何结果。

人们通常会如何处理这个问题?

  • 有单独的客户和useraccount表
  • 所以数据仍然可用
  • 记录在电话表作为一个单独的领域的客户名称只是禁用帐户。

或其他方法/建议?

回答

0

删除记录很少是一个好主意。通常你会想要包含一个isActive标志,明确的有效日期或者沿着这些行的东西。

0

假设你正确地规范了数据,你不应该能够删除客户记录,因为你有1个客户打了很多电话,客户pk被呼叫fk引用,这就是数据完整性。我认为在客户中有效的日期是唯一不删除电话的方法。非规范化数据绝对不是要走的路。

1

正如其他答案指出的那样,常见的解决方案是使用标记将客户记录标记为“已删除”,“过期”或类似标记。

请注意,由于隐私原因/隐私法律,您可能需要删除个人信息(姓名,地址等)。然后,您需要在记录中留白一些字段,用占位符值替换它们。

另一种方法是彻底删除客户记录,并为删除的客户记录一个“虚拟”客户记录。然后,您可以将所有客户的从属记录重新分配给傻子。这当然会丢失信息,但是如果要删除个人信息必须删除 - 如果您保留客户记录,您可以看到哪些相关数据属于哪个(删除)客户,这有时可能足以猜测被删除的客户的身份。

您需要根据要求和法规来决定。