Мне нужно сохранить внесенные пользователем изменения в определенную таблицу, но не показывать эти изменения, пока они не будут просмотрены и одобрены административным пользователем. Хотя эти изменения все еще находятся в состоянии ожидания, я все равно буду отображать старую версию данных. Каким будет наилучший способ хранения этих изменений в ожидании утверждения?
Я подумал о нескольких путях, но не могу понять, что является лучшим методом. Это очень маленькое веб-приложение. Один из способов - иметь таблицу PendingChanges, которая имитирует другую схему таблицы, а затем, как только изменение будет одобрено, я могу обновить реальную таблицу с информацией. Другой подход состоял бы в том, чтобы сделать какое-то рекордное управление версиями, где я храню несколько версий данных в таблице, а затем всегда извлекаю запись с наивысшим номером версии, который был отмечен как одобренный. Это ограничило бы количество дополнительных таблиц (мне нужно сделать это для нескольких таблиц), но потребовалось бы, чтобы я делал дополнительную обработку каждый раз, когда я вытаскиваю набор записей, чтобы убедиться, что я получу нужные.
Любой личный опыт с этими методами или другими, которые могут быть хорошими?
Обновление: просто чтобы уточнить, в этой конкретной ситуации меня не интересуют исторические данные. Мне просто нужно каким-то образом одобрить любые изменения, сделанные пользователем до того, как они начнут жить на сайте. Таким образом, пользователь отредактирует свой "профиль", а затем администратор просмотрит эту модификацию и одобрит ее. После утверждения это станет отображаемым значением, и старая версия не будет сохранена.
Кто-нибудь пробовал решение ниже, где хранятся ожидающие изменения из любой таблицы, которая должна отслеживать их как XML в специальной таблице PendingChanges? В каждой записи будет столбец, в котором указана таблица, в которую были внесены изменения, столбец, в котором может быть сохранен идентификатор записи, который будет изменен (если это новая запись), столбца datetime для хранения, когда это изменение было сделано, и столбец для хранения xml измененной записи (может быть, сериализовать мой объект данных). Поскольку мне не нужна история, после того, как было одобрено изменение, реальная таблица будет обновлена, и запись PendingChange может быть удалена.
Любые мысли об этом методе?