更新数据库中的历史记录值

时间:2011-06-10 06:28:49

标签: database-design

我有下一个情况。在我的数据库中,我有2个表和它们之间的一个关系:

文档
PK_Doc
FK_Employee
文字

员工
PK_Employee
名称
SurName

因此,当我更新(删除)现有员工时,该文档必须具有创建时存在的员工的值。我该怎么做?

更新1:
例如: 我正在创建一个新文档(PK_Doc = 1)并选择组合框员工(Edward Norton)。爱德华诺顿成为爱德华哈里森。所以,当我打开一个文件(PK_Doc = 1)时,组合框的当前值应该是员工Edward Norton

2 个答案:

答案 0 :(得分:1)

您需要一个至少包含以下列的Employee_History表

PK_Employee_History_Id Employee_Id(不是约束) 名称 姓 ValidFrom(日期)

在Employee创建/更新/删除场景中,您在Employee_History中创建了一条新记录 - 我会为此使用SQL触发器。

将Document指向不可变的Employee_History表记录,而不是可变的Employee记录。

答案 1 :(得分:1)

换句话说,您需要处理一些slowly changing dimensions。 Bony建议使用4型,但你还有其他选择。如果您需要精确的审计跟踪,另请参阅bi-temporal databases