История изменений записей базы данных - PullRequest
1 голос
/ 17 февраля 2011

В настоящее время я работаю над большой системой управления (в PHP с использованием Zend Framework, но на самом деле это не относится к решению этого вопроса), в которой мне приходится управлять несколькими записями.Каждая запись имеет много полей и охватывает две таблицы в отношении 1-ко-многим (через один внешний ключ).В первой таблице примерно 50 полей, а во второй - 30 полей.

Сейчас я нахожусь на стадии реализации отслеживания истории различных изменений, внесенных пользователями (и некоторых автоматизированных задач).Каждую запись можно случайно откатить частично или полностью к предыдущему значению.

Я думал об использовании системы, аналогичной той, которая присутствует в CMS Typo3.Одна таблица для управления всей историей со следующими полями

  • history_id
  • entry_id
  • entry_table
  • last_modifcation_timestamp
  • last_modification_user
  • data

Данные будут "сериализованы" в формате json или xml.

В связи с этим методом меня беспокоит то, что сверхурочно, содержимое таблицы историибудет расти в геометрической прогрессии.Чтобы решить эту проблему, я подумал, что мог бы создать новую базу данных для управления этой историей каждый год, а затем показывать пользователям исторические данные по годам.

Я ищу советы о способах улучшения этого решения иоблегчить реализацию.Любые советы или документы, которые помогут мне, будут приветствоваться

1 Ответ

1 голос
/ 17 февраля 2011

Я бы добавил порог и удалил или выгрузил во внешний файл все записи старше определенного периода времени.

...