Mysql ManyToMany关系日志

时间:2012-07-17 10:09:10

标签: mysql logging many-to-many relation

我有一个表,例如orders(id,name,product,...),我有一个触发器写入的日志表:`orders_log(id,ts,order_id,name,product ,...)

orders对表service(id,name,price,...)具有ManyToMany关系,通过表orders_services(order_id,service_id)

用户通过网络表单可以添加或删除订单服务,我必须存储有关此操作的日志,并在编辑订单时将其显示给用户。

解决此问题的最佳方法是什么?我有多个toToMany关系,以及orders表的一对一ToToMany关系。 我正在使用mysql。感谢

1 个答案:

答案 0 :(得分:0)

我试图实现一个基于触发器的系统,但我发现它很麻烦并且放弃了。

我使用基于存储过程的系统取得了部分成功,这些存储过程复制了包含原始字段+事务ID的影子表中的行。我保留了一个单独的表,其中的事务ID与日期/用户等信息相关联。该系统允许我们为一组操作分配唯一的事务id,然后根据这些操作查询这些影子表。

我目前正在使用Java,我的审计日志是通过在包含类名的表中使用XStream序列化我的对象来实现的,这些表标识了对象的id,日期+ xml文本。我认为这是审计日志的一个很好的解决方案,因为记录的信息随着对象模型的增长而增长。根据后续xmls之间的差异创建包含更改的报告也很容易。