В настоящее время я работаю над большой системой управления (в PHP с использованием Zend Framework, но на самом деле это не относится к решению этого вопроса), в которой мне приходится управлять несколькими записями.Каждая запись имеет много полей и охватывает две таблицы в отношении 1-ко-многим (через один внешний ключ).В первой таблице примерно 50 полей, а во второй - 30 полей.
Сейчас я нахожусь на стадии реализации отслеживания истории различных изменений, внесенных пользователями (и некоторых автоматизированных задач).Каждую запись можно случайно откатить частично или полностью к предыдущему значению.
Я думал об использовании системы, аналогичной той, которая присутствует в CMS Typo3.Одна таблица для управления всей историей со следующими полями
- history_id
- entry_id
- entry_table
- last_modifcation_timestamp
- last_modification_user
- data
Данные будут "сериализованы" в формате json или xml.
В связи с этим методом меня беспокоит то, что сверхурочно, содержимое таблицы историибудет расти в геометрической прогрессии.Чтобы решить эту проблему, я подумал, что мог бы создать новую базу данных для управления этой историей каждый год, а затем показывать пользователям исторические данные по годам.
Я ищу советы о способах улучшения этого решения иоблегчить реализацию.Любые советы или документы, которые помогут мне, будут приветствоваться