0

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

表与表(id,名称,价格,...)通过表(order_id,service_id)orders具有ManyToMany关系serviceorders_services

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

解决此问题的最佳方法是什么?我有不止一个 manyToMany 关系,还有一些orders表的一对一关系。我正在使用mysql。谢谢

4

1 回答 1

0

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

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

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

于 2012-07-17T10:20:19.720 回答