Re[7]: Еще к вопросу о проектировании учетных систем
От: Sweetlane Россия  
Дата: 19.02.02 16:02
Оценка:
Здравствуйте Sinclair, Вы писали:

S>Это уже интереснее. Обработка откатов, по-моему, вообще одна из самых интересных проблем автоматизации бизнеса. Обычна ситуация, когда некий документ "вводится" в систему числом различной степени задности.

S>Вообще говоря, состояние счетов однозначно определяется историей проводок. Тонкость в том, что сами проводки, вообще говоря, зависят от состояния счетов на момент проведения операции.
Напрашивается такое решение:
S>1. Хранить журнал операций в дополнение к журналу проводок. То есть, мы всегда можем убить список проводок и "запустить" этот журнал на выполнение, и он нам все восстановит. В широком смысле этот журнал — это последовательность тех действий, которые выполняли операторы системы.

S>2. Когда нам надо провести некое исправление, мы откатываем журнал проводок до даты Т, модифицируем журнал операций на дату Т, проводим его от даты Т до сегодняшнего дня. Громоздко, но надежно. Итак, rollback-correct-rollforward.

S>Проблемы — огромные затраты на проведение исправлений. Они растут в лучшем случае линейно от "степени задности числа".
Проблемы еще более общирны: что делать если проводки после даты Т не укладываются после добавления новой проводки N.
Например было на складе 6 единиц. В поле даты Т все 6 единиц ушли со склада.
Мы добавляем проводку N: ушла еще одна единица.
При "укладовании" проводок обратно непонятно где взять 6 единиц, когда их на складе 5 осталось?.
Результат:
1. посылаем в.. все проводки поле даты Т
2. полным перебором пытаемся уложить оставшиеся проводки
3. посылаем в.. юзера с идеей проводки N
4.

S>С другой стороны, исправления задним числом все равно надо считать исключением. Бизнес, построенный только на них, неэффективен.

S>2. Оптимизация бизнес-процесса. Если у вас экспедиторы не сдают накладные по неделе — дайте им по нотебуку с модемом, чтобы они отчитывались в реальном времени.
Даешь каждой доярке по ноуту!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.