インポートしているデータの自然キーをある種の代理キーに変換する方法を見つけようとしています。
例:
OrderFact
注文に関するすべての情報を保持するというテーブルがあるとします。
CREATE TABLE OrderFact
(
Id INT IDENTITY PRIMARY KEY
,OrderId INT NOT NULL
,Amount INT NOT NULL
,Cost MONEY NOT NULL
,SaleDate DATE NOT NULL
);
GO
INSERT INTO OrderFact (OrderId, Amount, Cost, SaleDate)
VALUES (1, 2, 12.00, '1/1/2012'), (3, 1, 6.00, '12/29/2011'), (4, 5, 1.00, '1/1/2012');
現在、一部のベンダーのPOSシステムからすべての注文データを取得しているため、ステージングテーブルは次のようになります。
CREATE TABLE OrderStaging
(
OrderId INT
,Vendor INT
,Amount INT
,Cost MONEY
,SaleDate DATE
);
GO
INSERT INTO OrderStaging (OrderId, Vendor, Amount, Cost, SaleDate)
VALUES (1, 1, 2, 12.00, '1/1/2012'), (3, 2, 1, 6.00, '12/29/2011'), (4, 1, 5, 1.00, '1/1/2012');
今は誰が注文するかは気にしませんがBulk Order
、特別割引を適用するものとしてカウントされるため、同じベンダーが同じ日にどの注文を行ったかを追跡したいと思います。
データベースを構造化して、どの注文が一括注文であるかを追跡し、の自然キーをある種の代理キーに効果的に変換して、Vendor
それSaleDate
を検索できるようにする方法はOrderFact.Id
ありますか?