Таблица корректировки KPI
У меня есть таблица с ежемесячной сводкой KPI. Теперь клиент хочет иметь возможность вносить коррективы в исходные данные. Я должен учесть корректировки, а также сохранить исходные данные. Отчет, который я создаю, покажет исходные данные + или минус любые корректировки.
Вот пример того, что мне нужно сделать.
Таблица A Отчет_Месяц 7/31 KPI_1_QTY 88
Клиент просит уменьшить KPI_1_QTY на 5. Это приводит к тому, что KPI_1_QTY равняется 83. Мне нужно сообщить 83, но я должен также сохранить исходное значение.
Любые идеи о том, как закодировать это?
1 ответ
Существует несколько способов решения общей проблемы хранения контрольных записей исходных данных. Самое простое - это поставить метку времени в строке и включить битовое поле "IsHead".
Например:
FactID Timestamp Attribute Value IsHead
2 8/1 KPI_1_QTY 83 true
1 7/31 KPI_1_QTY 88 false
Если вы хотите "головную" ветвь данных, вы фильтруете по IsHead = true (обычно вы создаете представление для этого).
Если вы хотите журнал изменений, вы отобразите все строки в порядке убывания по метке времени.
Если вы хотите, чтобы данные существовали в определенный момент времени, вы реконструируете данные, которые существовали на эту дату (оставленные в качестве упражнения для читателя).
Если есть свойства, связанные с корректировкой, создайте другую таблицу с полями, которые необходимо описать для изменения. Например...
FactID ModifiedBy ModifiedOn ValueDelta Description
2 Fred 8/1 -5 Adjusted KPI_1_QTY per customer request