2012-07-17 31 views
0

我有一個表,例如orders(ID,名稱,產品,...),我有它的日誌表,其中觸發器寫道:`orders_log(id,ts,order_id,name,product ,...)Mysql ManyToMany關係日誌

orders有表service(ID,名稱,價格,...)throught表orders_services(ORDER_ID,service_id爲)

用戶throught Web表單可以添加或刪除服務多對多關係對於訂單,我必須存儲有關此操作的日誌,並在編輯訂單時向用戶顯示。

解決此問題的最佳方法是什麼?我有多個manyToMany關係,以及orders表中的一對一toToMany關係。 我正在使用mysql。謝謝

回答

0

我試圖實現一個基於觸發器的系統,但我發現它很繁瑣,放棄了。

我在基於存儲過程複製包含原始字段+事務ID的影子表中的行的系統上取得了部分成功。我使用與日期/用戶等信息關聯的交易ID保留了一張單獨的表格。這個系統允許我們爲一組操作分配一個唯一的事務id,然後根據這些查詢這些影子表。

我目前在Java工作,我的審計日誌是通過序列化包含類名,一些識別對象ID,日期和xml文本的位置的表中的XStream對象來實現的。我認爲這對於審計日誌來說是一個很好的解決方案,因爲記錄的信息會隨着您的對象模型而增長。根據後續xmls之間的差異創建報告也很容易。