OLTP に次のテーブル ルックアップ テーブルがあります。
CREATE TABLE TransactionState
(
TransactionStateId INT IDENTITY (1, 1) NOT NULL,
TransactionStateName VarChar (100)
)
これが OLAP に入ると、次のように構造を変更します。
CREATE TABLE TransactionState
(
TransactionStateId INT NOT NULL, /* not an IDENTITY column in OLAP */
TransactionStateName VarChar (100) NOT NULL,
StartDateTime DateTime NOT NULL,
EndDateTime NULL
)
私の質問は、TransactionStateId 列に関するものです。時間の経過とともに、OLAP で TransactionStateId 値が重複することがありますが、StartDateTime と EndDateTime の組み合わせにより、それらは一意になります。
OriginalTransactionStateId が追加され、着信 TransactionStateId がそれにマップされ、さらに新しい TransactionStateId IDENTITY フィールドが PK になり、結合に使用されるタイプ 2 ディメンションのサンプルを見てきました。
CREATE TABLE TransactionState
(
TransactionStateId INT IDENTITY (1, 1) NOT NULL,
OriginalTransactionStateId INT NOT NULL, /* not an IDENTITY column in OLAP */
TransactionStateName VarChar (100) NOT NULL,
StartDateTime DateTime NOT NULL,
EndDateTime NULL
)
学士号 #2 または学士号 #3 を使用する必要がありますか?