Задать вопрос
acelash
@acelash
web developer

Как вести учет изменений данных в таблице mysql (оптимальное решение)?

Нужно создать 2 таблицы:
1. Хранит всю инфу о клиентах;
2. Хранит все изменения данных из первой таблицы.

Помогите пожалуйста со структурой второй таблицы и, если не трудно, пример запроса который меняет инфу о клиентах и сохраняет данные об изменениях во второй таблицы.
  • Вопрос задан
  • 360 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 2
beardedjack
@beardedjack
А триггер прикрутить к таблице клиентов, пишущий в другую таблицу с ~ такой же структурой + полем с датой/временем (и идентификатор пользователя, например)...
Ответ написан
Комментировать
Вам нужно организовать темпоральную таблицу из таблицы клиентов. Если очень коротко, то смысл такой таблицы в том, что каждая запись у вас может хранить не только актуальные в ДАННЫЙ момент факты (как это происходит в обычной таблице), а еще и те, которые были актуальны в какой-то промежуток времени ранее (или даже те, которые БУДУТ актуальны позже). Сейчас очень неплохая темпоральная модель предлагается в свежем стандарте SQL:2011. К сожалению, сейчас далеко не все СУБД внедрили поддержку этого стандарта (сейчас поддерживают Oracle и DB2), но вы можете использовать саму идею, и реализовать логику через триггеры или на уровне приложения. Эта идея в том или ином виде повторяется в большинстве "велосипедов", связанных с историей данных в реляционных базах.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы