如何在数据库中维护数据日志?
我必须记录每行所做的每个更改.这意味着我不能允许DELETE和UPDATE执行.
我怎么能保留这样的日志?
我开始将SQLAlchemy用于一个新项目,我计划在这个项目中实现类似于此静默提议的审计跟踪:
因为我已经拥有了"有趣"对象的完整历史,所以我在考虑允许用户回滚给定版本,让他们有可能无限制undo.
这可以用SQLAlchemy以干净的方式完成吗?
在内部API(业务逻辑和ORM)中公开此功能的正确方法是什么?
我是一路走来的路user.rollback(ver=42).
我想为我们的系统添加审计跟踪,所以当发生任何添加/删除/更新操作时,我将使用以下信息记录它: -
CRUD操作类型.是添加,删除还是更新.
已修改的记录ID.
日期和时间.
现在我发现了两种方法; 要么拥有一个包含以下字段的审计跟踪表: -
或者有两个表用于CRUD操作的查找表,例如
审计审判将参考上表: -
那么哪种方法更好?
第二个问题如果我将遵循第二种方法.然后我最好在我的代码中使用CRUD_ID,例如,如果oprration是delete,我的代码可能如下: -
Inset into audit_trail (ID, CRUD_ID, Record_ID, Date) values ( 123445, 3,12771,1june2O13) //CRUID 3 represents delete operation.
Run Code Online (Sandbox Code Playgroud)
最好的祝福