Естественный ключ при объединении двух исходных таблиц, которые используют аналогичные предварительные ключи - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть две исходные таблицы, одна в основном счет-фактура, другая - перенесенная счет-фактура.Один и тот же объект, вероятно, должен был использоваться для обоих, но у меня есть это вместо этого.Они содержат большинство одних и тех же данных.

Я думал объединить оба в таблицу измерений, однако оба будут использовать одни и те же естественные ключи.Как мне подойти к этому?

Одним из возможных решений, о котором я думал, было использование отрицательных чисел для перенесенной таблицы, но тогда естественные ключи не будут точно совпадать с исходным.

Должен ли я просто объединить их в таблицу фактов?Тогда я не могу связаться с таблицей измерений ни из-за NULL.

Или мне добавить дополнительный столбец или информацию, чтобы указать, к какому типу счета это относится?

РЕДАКТИРОВАТЬ


Простые модели текущих таблиц ниже.Измерение в настоящее время содержит только не перенесенные данные, оно имеет первичный ключ, однако, если я объединю с ним перенесенную таблицу счетов-фактур, это будет выглядеть так, как будто изменения вносятся в исходные счета, а не во второй набор счетов

Измерение

surrogate_key| source_pk | Total |  scd_from   | scd_to
             |           |       |             |
 1           | 1         | 100   | 01/01/2019  | 31/01/2019
 2           | 1         | 150   | 01/02/2019  | 31/12/2019
 3           | 2         | 50    | 01/01/2019  | 31/12/9999

исходная таблица счетов

pk         | Total
___________________
 1         | 150
 2         | 50

исходная перенесенная таблица счетов

pk         | total
___________________
 1         | 200
 2         | 300

1 Ответ

0 голосов
/ 22 февраля 2019

Если счет-фактура и перенесенный счет-фактура имеют один и тот же естественный ключ, но некоторые поля имеют разные значения (в вашем примере общая сумма отличается между ними), то у вас есть одна строка на основе естественного ключа в Dim, но два разных столбца для представления2 источника.Исходя из вашего примера, вам нужны столбцы invoice_Total и migrated_invoice_Total в вашем DIM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...