Проблемы такого рода всегда сложнее, чем кажутся на первый взгляд.Это является следствием того, что я люблю называть рамсфельдской проблемой неизвестного неизвестного .По сути, что бы вы ни делали сейчас, будьте готовы внести коррективы в произвольные правила будущего.
Это сложное предложение.Некоторые будущие возможности, которые могут оказать существенное влияние на вашу модель расчета, - это платежи, корректировки и начисления за прошлые периоды.Прощенные периоды начисления процентов также могут стать проблемой (особенно если они датированы ранее).Требования к предоставлению различных вычислений на определенный момент времени (PIT), основанные либо на том, что было «известно» в этом PIT (прошлое представление о прошлом), либо на учете транзакций, происходящих после контрольного PIT, которые были обратно датированы PIT доссылка (текущий взгляд на прошлое).Расчеты такого рода могут быть настоящей болью в голове.
Мой совет будет рассчитывать с «нуля» (т. Е. Первый вариант).Внедряйте оптимизацию (например, второй вариант) только тогда, когда это необходимо для удовлетворения ограничений производительности.Выполнение вычислений с самого начала - это модель с интенсивным использованием вычислений, но, как правило, она более гибкая в отношении учета неожиданных поворотов влево.
Если производительность является проблемой, но частота осложняющих факторов (например, транзакций с обратными датами) относительно низкаяВы могли бы исследовать гибридную модель, используя лучшие из обоих вариантов.Здесь вы сохраняете текущее состояние и рассчитываете вперед, используя только те транзакции, которые были опубликованы с момента последнего сохраненного состояния, для создания нового текущего состояния.Если вы нажали «усложнение», заново выполните всю учетную запись с самого начала, чтобы восстановить текущее состояние.
Возможность справиться с непредвиденным, не вызывая перезаписи, вероятно, важнее в долгосрочной перспективе, чем бритьеВремя расчета прямо сейчас.Не устанавливайте ограничения на свою вычислительную модель, пока не потребуется.Сохранение текущего состояния часто приносит с собой ряд встроенных допущений и ограничений, которые уменьшают пространство для маневра для удовлетворения будущих требований.