Почему вы не собираетесь использовать SCD-2 (медленно изменяющееся измерение), которое является правилом / методологией для описания наилучшего решения вашей проблемы. Вот преимущество и пример использования SCD-2, и он создает стандартный шаблон проектирования для базы данных.
Тип 2 - Создание новой дополнительной записи. В этой методологии вся история изменений измерений хранится в базе данных. Вы фиксируете изменение атрибута, добавляя новую строку с новым суррогатным ключом в таблицу измерений. И предыдущие, и новые строки содержат в качестве атрибутов естественный ключ (или другие долговременные идентификаторы). Также в этом методе используются столбцы «дата вступления в силу» и «текущий индикатор». Может быть только одна запись с текущим индикатором, установленным на «Y». Для столбцов «дата вступления в силу», то есть start_date и end_date, end_date для текущей записи обычно устанавливается в значение 9999-12-31. Внесение изменений в размерную модель в типе 2 может быть очень дорогой операцией с базой данных, поэтому не рекомендуется использовать ее в измерениях, где в будущем может быть добавлен новый атрибут.
id | amount | start_date |end_date |current_flag
1 100 01-Apr-2018 02-Apr-2018 N
2 80 04-Apr-2018 NULL Y
Подробное объяснение ::::
Здесь все, что вам нужно, чтобы добавить 3 дополнительных столбца, START_DATE, END_DATE, CURRENT_FLAG , чтобы правильно отслеживать вашу запись. Когда в первый раз вставляется запись @ source, в этой таблице будет храниться значение как:
id | amount | start_date |end_date |current_flag
1 100 01-Apr-2018 NULL Y
И, когда та же запись будет обновлена, вы должны обновить «END_DATE» предыдущей записи как current_system_date и «CURRENT_FLAG» как «N», и вставить вторую запись, как показано ниже. Таким образом, вы можете отслеживать все о ваших записях. как показано ниже ...
id | amount | start_date |end_date |current_flag
1 100 01-Apr-2018 02-Apr-2018 N
2 80 04-Apr-2018 NULL Y