我有一个非常繁忙的网站。 用户可以创build许多types的内容,然后可以将其投票上/下,报告为冒犯性,pipe理员启用/禁用等。我希望启用审核网站上执行的所有操作。
我正在使用的数据库是SQL Server 2005.我有两个选项在我的脑海。 第一个是一个大的表,其中包含审计屏幕所需的大部分细节,即在此表中复制内容片段以消除join其他表的需要。 第二个解决scheme是为每种types的内容都有一个单独的审计表。 这使得为用户检索审计日志变得更加复杂,例如,因为他们可能涉及许多不同types的内容,因此我需要从许多不同的表中检索数据。
所以这似乎是表格大小和查询简单性之间的折衷。 这里有没有什么经验法则 – 或者明显的是哪种方法更好?
这并不完全回答你的问题,但是这个文件是非常有帮助的,你真的会从阅读中受益。 微软为SQL Server 2008(我知道,不是2005)提供了一份审计和合规指南,它包含了大量有关这个主题的信息:
你所描述的情况是SQL Server 2008更改数据捕获的一个很好的select,它可以自动捕获你想要pipe理的数据。 不幸的是,它只是企业版,这意味着它并不便宜。 如果你想避免重新发明轮子,这是一条路。
当你说“非常繁忙的网站”,它虽然引起了红旗。 这些技术,即使是自己动手,都不会是低开销的。