Хочется изобрести велосипед, который будет представлять из себя базу данных, сохраняющую тем или иным образом изменения или состояния на каждый день и иметь возможность сравнить с текущим состоянием таблицы.
Есть информация (пусть будет, о заказах), которую планируются «вручную» (csv или xlsx, например) добавлять в БД каждый день. Изменения происходят в нескольких полях одновременно, и почти в каждой строке, т.ч. логгирование по полю кажется не самым подходящим вариантом.
Хотелось бы видеть (автоматически и интерактивно, ха) произошедшие изменения и иметь возможность сравнить версии таблицы в разные дни и найти дельту между ними.
Подскажите, пожалуйста, как лучше реализовать данное чудо.
Пока было 2 варианта: отдельная таблица на каждый день (месяц минимум) и, например, вычитать одну из другой. Или триггеры при апдейте, которые вполне вариант, но как восстановить состояние всей таблицы на прошедшую дату?
Очень интересуют как общие советы по архитектуре, так и конкретные технологии, которые оптимальнее использовать.
Спасибо.
Версионность надо делать нормальную.
Способов организации может быть несколько. Например для каждого объекта указывать время жизни.
Ну или купить Oracle, в 11 есть встроенная версионность.
> Подскажите, пожалуйста, как лучше реализовать данное чудо.
Конечно, же написать самому. Для хранения можно использовать, например, систему ревизий (как в википедии) (1 таблица хранит актуальные значения, другая, архивная, все предыдущие ревизии записей).