У меня есть приложение, которое оценивает пользовательские представления и назначает значение балла для каждого представления на основе различных формул (фиксированная ставка для всех, фиксированная ставка для первых записей «x», понижающее значение для первых записей «x»). Формулы основаны на типе представления (категория представления определяет значения баллов и формулы, используемые при расчете указанных значений).
Проблема заключается в том, что клиент хотел бы хранить эти формулы исторически, чтобы для любой конкретной записи он мог просматривать формулу, которая использовалась для вычисления значения балла.
У меня есть несколько идей относительно того, как этого добиться, но ни одна из них не кажется хорошим вариантом:
1) Сохраните формулы в коде PHP и закомментируйте предыдущие формулы, указав эффективный диапазон дат.
2) Создайте представление при каждом изменении формулы и обновите код, чтобы использовать новое представление. Отметьте даты вступления в силу в имени представления или в коде.
3) Сохраните формулы в таблице формул, указав для каждого уникальный идентификатор, а также даты вступления в силу / выбытия.
Есть ли другой или лучший способ добиться этого? Первые два потребовали бы написания / изменения большого количества кода в случае обновления формулы, а третий требует синтаксического анализа и сохранения формул в БД (чего я пытался избежать).
Мысли?