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.)
_________
Если кто-то делал что-то подобное или просто есть мысли по этому поводу...
Какой способ лучше, может есть ещё варианты? вообщем, всё чем можете помоч.
Добрый день!
Мне нужно сделать регистр изменений к одной базе.
Грубо говоря транзакции - когда идёт изменение, оно вносится также в дополнительную таблицу и, в последствии, может быть произведён откат.
додумался до 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.)
_________
Если кто-то делал что-то подобное или просто есть мысли по этому поводу...
Какой способ лучше, может есть ещё варианты? вообщем, всё чем можете помоч.