目前,我想构建一个跟踪/历史记录表,如下所示:
- PrimaryKey-ID
- OtherTableId-fk
- fieldName-其跟踪的字段名称
- 旧值
- 新价值
- 用户名
- CreateDateTime
因此,基本上,我希望有一个表可以跟踪另一个表的历史记录,并使用新值和旧值存储更改后的字段的列名。我的问题是,有人可以戳破这个漏洞吗?另外,最简单的方法是确保仅将其跟踪表中的列名输入到fieldName列中?目前,我的选择是在要构建的服务中包含一个枚举,或者创建另一个状态表并使fieldName成为fk。还有更好的主意吗?
修改 目标:我们目前只跟踪2个字段。一个字段将显示在网页上以显示历史记录,而另一个字段将仅由一个部门访问,并且他们有权访问他们可以查询的数据库视图。他们将只查询这一字段,以获得有关谁更改了字段以及更改内容的信息。这就是我们想要在数据库字段定义表列的位置而不是具有表记录历史记录的精确副本的地方进行设置的原因。我们只希望跟踪两个字段,以便将来增加或删除字段。
谢谢!