У меня есть база данных MySQL, где я храню информацию, введенную с веб-страницы PHP. У меня есть страница, которая позволяет пользователю просматривать существующую строку и вносить изменения и сохранять их в базе данных. Я хочу знать лучший способ сохранить исходные записи, а также новое обновление и любые последующие обновления.Как архивировать изменения в строках таблицы?
Моя мысль состоит в том, чтобы создать новую таблицу с теми же колонками, что и первая, с дополнительным полем метки времени. Когда пользователь отправляет обновление, сценарий будет принимать содержимое строки основной таблицы и вводить их в таблицу архива с отметкой времени, когда это было сделано, и затем вводить новые значения в основную таблицу. Я также добавлю новое поле в основную таблицу, чтобы указать, была ли когда-либо отредактирована строка.
Таким образом, я могу выполнить запрос основной таблицы и получить самые последние данные, и я также могу запросить таблицу архива, чтобы увидеть историю изменений. Это лучший способ добиться этого, или есть лучший способ?
Мне нравится эта идея. Я немного проверил, и у меня есть вопрос. В настоящее время моя таблица содержит данные, которые добавляет рецензент, а также поле состояния и пользователя. Когда пользователь сначала открывает элемент, он устанавливает статус «в процессе», а также вводит свой идентификатор. Поскольку это операторы UPDATE, они вызовут триггер. Я не хочу фиксировать эти изменения, но когда пользователь нажимает «Отправить», и он вводит данные или вносит изменения позже. Кто-нибудь имеет пример того, как запускать, когда обновляются только определенные поля? – zoidberg