哪种方法更好 - 更改每个表中的跟踪属性与一个跟踪器表

时间:2011-04-18 08:38:27

标签: database-design

我正在尝试在两种方法之间做出决定,以跟踪记录是否发生了变化以及何时以及由何人变更。我对获取已更改的实际数据感兴趣,但仅对数据已更改的事实感兴趣。我正在使用SQL Server 2008。

第一种方法是在每个表中包含以下6列:Created On,Created By,Last Updated On,Last Updated by,Deleted On和Deleted By。

第二种方法是拥有一个表,让我们称之为Change Tracker,它有6列,其他表将有一个FK到Change Tracker表。

这是一种更好的做法,为什么?

另外,如果我在SQL Server中启用更改跟踪,是否需要这些列?

1 个答案:

答案 0 :(得分:0)

我认为第二种方法没有优势,总是使用第一种方法。 btw,deleted_by和deleted_on是冗余字段。 created_xx和updated_xx字段就足够了