On Tue, Feb 15, 2011 at 11:39:32PM +0300, Денис Черносов wrote: > Форматов чего? Если под форматом мы имеем ввиду модель данных, то > миграция с одной модели на другую ставит в полный рост вопрос о > преобразовании существующих данных. И этот вопрос так или иначе > решается. Именно. > Пример А: в модель добавляется новое поле. Для существующих данных > значение этого поля устанавливаются в NULL или некоторое значение по > умолчанию. В случае с JSON/BSON это не требуется. Просто это поле отсутствует и все. > Пример Б: на некоторое поле устанавливаются дополнительные ограничения > на ввод. На существующих данных это никак не отражается или они > преобразуются задним числом. > Пример В: из модели изымается некоторое поле. На существующих записях > это никак не отражается или информация изымается задним числом (и > остаётся только в архивных документах, отвязанных от модели). Простой пример -- было у нас поле integer, а стало numeric. В случае с хранением в БД -- надо конвертировать (что может быть долго, и требовать временной остановки сервиса). В случае с файлами или БД типа MongoDB мы просто в коде чтения объекта из БД обрабатываем оба варианта. И все работает. > Пример Г: модель очищается от устаревших данных. Устаревшие данные > либо удаляются без остатка, либо сводятся в более компактные отчёты. К > версионности модели это не имеет отношения, ибо часть модели и один из > бизнес-процессов одновременно. В архивных данных удалять информацию неправильно, IMHO. Только когда истекает срок хранения данных может оказаться что срок хранения сводных отчетов дольше (и тогда генерируются отчеты и удаляются данные). > В каждом случае, вопрос "как обращаться к архивным данным" решён однозначно. > Версионный контроль форм ввода и форм отчётов с моделью могут быть > связаны опосредовано или не связаны вообще. Это уровень приложения. К > возможности анализа исторических данных соотв. отношения не имеют, за > исключением случая из Примеров В и Г, когда кроме сводных отчётов и > форм определённого вида, данных не сохраняется. Тоже бывает. Тогда > приходится анализировать только те выжимки, которые остались. Сжатие с > потерями :) Ага :) -- С уважением, Денис http://mithraen.ru/ ----------------------------------------------------------------------------