Регистр изменений

Aectann

Новичок
Регистр изменений

Добрый день!

Мне нужно сделать регистр изменений к одной базе.
Грубо говоря транзакции - когда идёт изменение, оно вносится также в дополнительную таблицу и, в последствии, может быть произведён откат.

додумался до 2-х вариантов:

1. Архивную таблицу я представляю себе так:

id_transaction - собственно ID
table - таблица в которой происходят изменения
field - поле каторое изменяется
row - строка каторя изменяется (ID)
old_value - старое значение
new_value - новое значение
date - дата изменений

при запросе на апдейт или удаление идёт вызов функции в каторую как параметр засылается запрос. в функции запрос разбирается на состовляющие и идёт запись в транзакции.

Сложности: запрос нужно разбирать руками, выделять где таблица, а главное, где столбцы и значения.
_______

2. Архивная таблица:

id_transaction - собственно ID
back_query - запрос который нужно сделать, чтобы откатить инфу.
date - дата
в этом случае - опять вызываем функцию, но как параметр передаём имя таблицы и ID записи. потом вытаскиваем запись, переделываем данные под обратный запрос (back_query), и пихаем в транзакции.

Сложности: собрать обратный запрос (хотя по моему это легче чем в пункте 1.)
_________

Если кто-то делал что-то подобное или просто есть мысли по этому поводу...
Какой способ лучше, может есть ещё варианты? вообщем, всё чем можете помоч.
 
Сверху