我正在为我的数据库构建审计表,需要选择要实现的样式。我目前正在考虑三个选项,所有选项都将使用触发器填充:
这三个选项中的每一个都是可行的,据我所知,没有提供的功能在另一个选项中是不可能的。所以必须有一些我没有考虑的东西或一些更标准的模式。如果它有任何区别,这个解决方案必须适用于mysql和sql server(虽然我可以稍后解决代码的细节)。
答案 0 :(得分:4)
审计表受到严重影响,您不希望只有一个表用于所有审计,否则您将受阻。
除了我们每个表有两个表(一个存储更改实例和一个存储实际数据的表)之外,我们执行第二个操作。这使得很容易找到存储在amillion记录中的所有记录导入到表中实例因为它们都是相同的实例。这意味着我们可以在添加新表时轻松编写创建新审计表的脚本。
在第二个的情况下,我建议编写一个proc来恢复特定的记录,以便恢复很容易,你不必每次都弄明白。
答案 1 :(得分:1)
不是答案,只是进一步的问题:审核表的目的是什么?你为什么想要它们,需要它们,还是必须拥有它们?他们将如何使用,他们将回答什么问题或他们将解决的情况?它们的使用频率或频率很低?您必须保留这些数据多长时间,以及在截止日期之后如何清除或存档这些数据?
前面两个答案[theChrisKen,HLGEM]不同意,但是 - 基于他们之前的工作 - 我敢打赌他们都是正确的。如果您考虑如何使用它们以及该用法的性能要求,可以帮助您确定哪种型号最适合您的情况。答案 2 :(得分:0)
我会选择1号牌。如果您决定在跟踪中添加其他字段并且除了删除WHERE表的必要性之外几乎没有增加,那么2号将难以维护?条款。 3号是矫枉过正。这就是备份的用途。