我见过很多业务系统没有在Users表上使用连接,而是将用户名(或名字+姓氏)复制到CreatedBy审计字段。
我已经看到这种方法存在一个问题 - 用户可能会结婚并更改其姓氏,然后CreatedBy字段将保留旧值。
为什么有理由退出数据规范化并为CreatedBy字段创建冗余文本数据?
答案 0 :(得分:0)
在不使用外键引用的情况下存储某人的名称可以删除用户,而不会影响他们创建的行的信息。这是否明智取决于应用程序。
在大多数组织中,如果知道3年前某人姓名的重要性,那么有一些方法可以做到。它可能不在数据库中。可能是,“在人力资源部门问杰瑞。他记得每个人。” 此是否明智也取决于应用程序。
在任何情况下,这都不一定违反任何规范化准则。在这种情况下,您将存储当前名称或用户的首选名称。在另一种情况下,您在创建行时存储用户的名称,这仍然是一个真实的事实。