Хранилище данных Количество записей Хронология
У меня нет исторической информации о заказе на продажу в моей базе данных ERP. У меня есть таблица, содержащая заказ на продажу. Как только заказ на продажу утвержден, он преобразуется в накладную, и запись заказа на продажу удаляется.
Я могу закодировать в ERP историческую таблицу только с необходимой мне информацией. Я думал, что это то, что должно быть решено хранилищем данных (также из-за личного интереса).
Я хочу посмотреть, сколько у меня заказов на продажу по дате. Например, я хочу видеть, что у меня в среднем X заказов на общую сумму XXX за месяц.
Я подумала, где просто добавить столбцы "Действует с" и "До". Оттуда я заблокирован, хотя вначале я использую SCD, но, насколько я понимаю, это невозможно сделать с помощью первичного ключа.
Должен ли я создать новую таблицу фактов (как в базе данных ERP)? Я не хочу программировать что-либо также для триггера вставки или удаления триггера из таблицы заказа на продажу. Мы очищаем таблицу заказов на продажу в конце дня, ее нужно обновлять, когда мы обновляем хранилище данных ночью. В этом случае мне не нужно принимать во внимание, что заказ не будет утвержден и что я буду хранить не относящиеся к делу записи.
1 ответ
Из того, что я могу собрать, вы страдаете от плохой модели данных.
случай
Есть таблица заказов на продажу. Записи в этой таблице не сохраняются (например, с измененным статусом или простой копией в таблицу "упорядочено"), а удаляются.
Это первая ошибка.
Во-вторых, вы говорите, что не хотите слушать триггер удаления. К сожалению, насколько я понимаю, удаление может происходить каждый раз в течение дня. Таким образом, работа по сбору данных из таблицы заказа на продажу должна выполняться по крайней мере каждую минуту, если утверждение может произойти очень быстро. Это тоже сомнительное дизайнерское решение.
Подход
Лично я не стал бы начинать с DWH. Я бы начал с простой работы, которая будет заполнять новые данные о продажах, когда срабатывает триггер вставки. Это потому, что с течением времени дельта-проверка станет дорогостоящей.
И тогда эта таблица, если она содержит всю информацию, может быть использована для анализа данных.
Вопросы
Но вам также необходимо определить процесс отмены заказов. Как вы узнали, что эти заказы удалены, потому что они отменены, а не потому, что они были утверждены?
Если у вас есть более четкое представление о шагах процесса, вам станет легче использовать данные, например, в DWH. Но даже DWH не поможет, если процессы заранее не будут четко определены, по крайней мере, для изменения статуса.