Целостность, Миграция - Программа расчета агрегатов по накапливающимся данным для построения отчетов

Еще одна возможная проблема -- целостность данных. Если приложение не уведомит Библиотеку об изменении данных, то ошибка останется в агрегате навсегда. Однако, многие проблемы с целостностью можно избежать грамотным проектированием: описание операций с базой данных в отдельном слое "модели", использование транзакций.

К тому же, финансовые операции, которые в основном и являются предметом агрегации, обычно не изменяются из-за специфики бухгалтерии. Принятый платеж уже нельзя удалить или изменить. Единственный способ его "отменить" -- провести еще один платеж в обратном направлении. Такая операция без проблем отразиться во библиотеке.

Миграция

Как и в случае с денормализацией, при внедрении системы данные необходимо рассчитать и заполнить. Однако есть несколько способов сделать это.

Самый простой -- рассчитать все значения и записать их как первые инкременты агрегатов. Такой подход даже не вызовет даунтайма: в то время как скрипт будет рассчитывать инкременты для агрегатов, возможные новые инкременты для агрегатов будут успешно приниматься библиотекой не нарушая целостность.

Другой подход -- на основе имеющейся истории создать заполнить лог-таблицу и затем "воспроизвести" ее при помощи библиотеки.

Похожие статьи




Целостность, Миграция - Программа расчета агрегатов по накапливающимся данным для построения отчетов

Предыдущая | Следующая