我正在尝试找到一种方法来将我正在导入的某些数据上的自然键转换为某种代理键。
例子:
假设我有一个名为的表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
它?