Три связанных объекта вместо одной перезаписанной таблицы
Оригинал содержит данные ровно в том виде, в каком они были получены. Его не редактируют: это позволяет позднее проверить, какое значение поступило первоначально.
Рабочая копия предназначена для исправлений, приведения форматов и расчётов. Журнал исправлений связывает оригинал и рабочую копию: в нём указывают идентификатор строки, старое и новое значения, причину и правило преобразования.
Такой порядок не означает, что любое изменение верно. Он позволяет увидеть, какое именно допущение повлияло на результат.
| Объект | Назначение | Редактирование |
|---|---|---|
| Оригинал | Сохранить полученные данные | нет |
| Рабочая копия | Исправлять и рассчитывать | да |
| Журнал исправлений | Объяснять изменения | добавляются новые записи |
Учебный пример исправления единицы
Вымышленный фрагмент исходной таблицы содержит строку E-17: длительность «90», а в заголовке полученного файла указана единица «секунды». При переносе в рабочую таблицу значение оставляют числом 90 секунд и для отображения записывают 1:30.
Если в рабочей копии кто-то ранее прочитал это число как 90 минут, исправление состоит не в удалении прошлого следа, а в создании записи журнала: старое толкование «90 минут», новое «90 секунд», причина «единица указана в заголовке исходного файла». Это учебный пример метода, а не утверждение о конкретном протоколе.
| ID строки | Старое значение в рабочей копии | Новое значение | Причина |
|---|---|---|---|
| E-17 | 90 минут | 90 секунд; отображение 1:30 | В исходном заголовке единица указана как «секунды» |
Последовательность, которая сохраняет воспроизводимость
Сначала фиксируют оригинал и его структуру: названия полей, строки, единицы и источник. Затем создают копию для работы. Каждое исправление выполняют в копии и одновременно вносят в журнал.
Для расчёта следует использовать поле с однозначной единицей. В примере это поле «длительность_секунды» со значением 90, а формат 1:30 служит отображением. Если причина изменения неизвестна, значение не следует самовольно исправлять: его можно пометить как требующее уточнения, не подменяя неизвестное нулём.
- Сохранить полученный набор данных без изменений.
- Создать отдельную рабочую копию.
- Для каждого изменения записать ID строки, прежнее и новое значение, причину и применённое правило.
- Проводить расчёты по рабочей копии с явно указанными единицами.
- Хранить журнал вместе с рабочей копией, чтобы можно было восстановить путь от оригинала к результату.
Ограничение метода
Журнал делает изменение проверяемым, но не создаёт отсутствующий факт. Если источник не содержит единицу, статус или определение показателя, нельзя достоверно вывести их только из числа.
В таком случае ответ зависит от недостающего условия: пока единица не установлена, например, значение 90 нельзя однозначно трактовать как секунды, минуты или другую величину. Его следует хранить как значение с неизвестной единицей и исключить из расчёта, который требует известной единицы.