Sch*_*arz 21 mysql database-design audit
我需要在项目上设置历史功能以跟踪先前的更改。
假设我现在有两个表:
NOTES TABLE (id, userid, submissionid, message)
SUBMISSIONS TABLE (id, name, userid, filepath)
示例:我在笔记中有一行,用户想要更改消息。我想在更改之前和更改之后跟踪它的状态。
在这些表中的每一个中设置一列的最佳方法是什么,该列将说明某个项目是否“旧”。0 如果活动或1 如果删除/不可见。
我还想创建一个历史 ( AUDIT TRAIL
) 表,其中包含id
先前状态的 ,id
新状态的 ,这些 id 与哪个表相关?
Tom*_*att 15
在您的数据中设计版本控制功能时,有几个最低要求(我认为):
这是我在技术展览会上做过几次的演示文稿的幻灯片。它涵盖了如何完成上述所有操作。而这里是进入更详细的文档。我必须为这份文件道歉——这是一项正在进行的工作,并非所有部分都已完成。但它应该为您提供实现从简单版本控制到全面双时访问的所有信息所需的所有信息。
请查看
http://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database
关于在数据库设计中创建审计跟踪的方法,这是一本非常好的读物。审计跟踪是实施数据库所必需的。您应该始终能够看到系统内数据库用户的操作。
我们可以通过向所有 PTA 感兴趣的表添加一些标准 PTA(时间点)列来跟踪在我们的 PTA(时间点)系统中哪些行发生了更改。
我建议如下:
DateCreated – the actual date on which the given row was inserted.
DateEffective – the date on which the given row became effective.
DateEnd – the date on which the given row ceased to be effective.
DateReplaced – the date on which the given row was replaced by another row.
OperatorCode – the unique identifier of the person (or system) that created the row.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
60346 次 |
最近记录: |