我需要跟踪
对于我的大多数实体。很标准。
您认为最好将这些列添加到每个表中吗?或者只是在要审计的表上只有CreatedAuditEntryId
和ModifiedAuditEntryId
FK指向现有的单独审计表,这些表是用于跟踪所有变化。
AuditEntry看起来像:
必须进行两次连接以获得Created和Modified信息会产生明显的性能影响......但好处是我不会在两个不同的地方保持状态,这就像我的设计中的基本规则第一书。
更新:
为了清楚起见,AuditEntry表包含每个表的每个修改,无论如何。这里的问题是,是否通过FK将该表用于创建和修改信息......或者只是将上面的四列添加到我想要信息的每个表中,以避免连接。
答案 0 :(得分:1)
“更好”取决于您的需求。
如果你只需要最后修改事件,那么将审计列添加到表中会更好(资源方面)。然后,更新只需要触摸那一行。
另一方面,如果有人触摸记录,你需要有一份审核记录,那么你别无选择,只能拥有一个单独的审核表。
答案 1 :(得分:1)
我的偏好是一个单独的审计表与FK关系,否则你只能看到最后一个条目,这不是一个审计......
您有什么用来更新这些条目?如果可以从SQL用户隐含UserID,则可以在触发器中完成。
我正在寻找类似于MVC的东西,并且即将实现一个过滤器来记录系统范围内的控制器动作,以及何时何种类型的表格。
编辑:鉴于更新的问题,显然Audits表仍然存在,我必须选择链接到审计表。拥有不一致的审计数据的想法实在太可怕了!除非应用程序完全被关系设计削弱,否则请将其标准化!