审核列 - 加入还是复制?

时间:2013-02-06 10:12:13

标签: audit database-normalization

我见过很多业务系统没有在Users表上使用连接,而是将用户名(或名字+姓氏)复制到CreatedBy审计字段。

我已经看到这种方法存在一个问题 - 用户可能会结婚并更改其姓氏,然后CreatedBy字段将保留旧值。

为什么有理由退出数据规范化并为CreatedBy字段创建冗余文本数据?

1 个答案:

答案 0 :(得分:0)

在不使用外键引用的情况下存储某人的名称可以删除用户,而不会影响他们创建的行的信息。这是否明智取决于应用程序。

在大多数组织中,如果知道3年前某人姓名的重要性,那么有一些方法可以做到。它可能不在数据库中。可能是,“在人力资源部门问杰瑞。他记得每个人。” 是否明智也取决于应用程序。

在任何情况下,这都不一定违反任何规范化准则。在这种情况下,您将存储当前名称或用户的首选名称。在另一种情况下,您在创建行时存储用户的名称,这仍然是一个真实的事实。