如何在数据库端实现事件跟踪?假设我在表中有以下列: UserID, Column1, Column2, Column3 其中 UserID 是主键,而 Column1 具有唯一约束。
假设用户可以在应用程序端更改 Column1、Column2 和 Column3 的值。
进一步假设我需要检测对每一列所做的更改并将它们显示给用户。
我想过做这样的事情:
Table1: EventID (PK), EventDate, UserID, Column1
Table2: EventID (PK), EventDate, UserID, Column2
Table3: EventID (PK), EventDate, UserID, Column3
除了主键之外,上述任何列都没有唯一性验证。这样,每当修改每一列时,我都会将新值插入到相应的表中,并且可以跟踪对该列所做的所有更改,但这意味着我需要放弃对 Column1 的唯一约束。我可以通过获取每个 UserID 的最新 Column1 值并将它们相互比较来检查应用程序层的唯一性。(不知道这有多聪明)
这也意味着我需要为需要跟踪更改的每一列创建一个单独的表。
作为一名非数据库设计专家,我想知道如何以最优雅的方式实现数据库架构,我可以在其中进行事件跟踪。
PS 如果这有帮助,我对使用 SQL Azure 很感兴趣。