Спустя 30 минут, 43 секунды (25.07.2011 - 04:49) Nikitian написал(а):
Нужны инкрементальные diff-подобные изменения или достаточно иметь старую и новую версию в полном объёме?
Спустя 4 минуты, 44 секунды (25.07.2011 - 04:54) bigmatherhaker написал(а):
Цитата (Nikitian @ 25.07.2011 - 01:49) |
Нужны инкрементальные diff-подобные изменения или достаточно иметь старую и новую версию в полном объёме? |
Желательно было бы дифы. Для отчетов.
Спустя 3 минуты (25.07.2011 - 04:57) Nikitian написал(а):
Ну тогда генерируйте этой утилитой на основе временных файлов историю различий и сохраняйте в отдельную таблицу с указанием пользователя и обязательно автоинкрементом (чтобы можно было собрать всё обратно :)).
Если diff не обязателен, то можно проще: в ту же отдельную таблицу кидайте полную версию данных.
Поля временной таблицы: id, user, content, где content - сериализованный массив различий между записями из разных таблиц или новая версия этих данных. Вместо сериализации можно использовать упаковку в json для более гибкой обработки на других языках.
Предполагаемый формат сериализованных данных:
Если diff не обязателен, то можно проще: в ту же отдельную таблицу кидайте полную версию данных.
Поля временной таблицы: id, user, content, где content - сериализованный массив различий между записями из разных таблиц или новая версия этих данных. Вместо сериализации можно использовать упаковку в json для более гибкой обработки на других языках.
Предполагаемый формат сериализованных данных:
array(
table1=>array(field1=>data1,field2=>data2),
table1=>array(field1=>data1,field2=>data2)
)
Спустя 4 минуты, 55 секунд (25.07.2011 - 05:02) bigmatherhaker написал(а):
Цитата (Nikitian @ 25.07.2011 - 01:57) |
Ну тогда генерируйте этой утилитой на основе временных файлов историю различий и сохраняйте в отдельную таблицу с указанием пользователя и обязательно автоинкрементом (чтобы можно было собрать всё обратно ![]() Если diff не обязателен, то можно проще: в ту же отдельную таблицу кидайте полную версию данных. Поля временной таблицы: id, user, content, где content - сериализованный массив различий между записями из разных таблиц или новая версия этих данных. Вместо сериализации можно использовать упаковку в json для более гибкой обработки на других языках. |
Спасибо, в этом направлении сейчас и двигаюсь. Совет со стороны как раз во время

Спустя 2 минуты, 20 секунд (25.07.2011 - 05:04) Nikitian написал(а):
На самом деле, инкрементальные обновления имеют смысл лишь при большом количестве изменений и объёме данных. В остальных случаях иметь полную версию будет предпочтительнее - проще и быстрее откатиться к любому месту.
Спустя 1 час, 24 минуты, 58 секунд (25.07.2011 - 06:29) bigmatherhaker написал(а):
Цитата (Nikitian @ 25.07.2011 - 02:04) |
На самом деле, инкрементальные обновления имеют смысл лишь при большом количестве изменений и объёме данных. В остальных случаях иметь полную версию будет предпочтительнее - проще и быстрее откатиться к любому месту. |
Несколько десятков тысяч записей в каждой таблице, сотни-тысячи правок каждые сутки.