我正在使用数据仓库的星型模式,但遇到来自不同数据源的标题和行项目的问题。
CREATE TABLE DataSourceAHeader
(
OrderId INT NOT NULL
,TotalCost MONEY NOT NULL
-- Date, etc...
);
CREATE TABLE DataSourceALine
(
OrderId INT NOT NULL
,LineNumber INT NOT NULL
-- Dates, etc...
);
CREATE TABLE DataSourceBLine
(
OrderId INT NOT NULL
,Cost MONEY NOT NULL
,LineNumber INT NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
我有数据源 A 和 B,它们以不同的方式表示相同的数据。数据源 A 包含标题和行项目,但标题中仅包含净结果(总成本)。数据源 B 仅包含行项目,每个项目都有一个结果(成本)。
我可以保留两个事实表(一个用于标题,一个用于行项目),但我已经研究过,这似乎是不可取的。是否有处理这种不匹配格式的策略,还是应该将它们存储在单独的数据仓库中(每个数据源一个仓库)?
我目前的策略:
CREATE TABLE Fact.Order
(
Id BIGINT IDENTITY PRIMARY KEY
,OrderId INT NOT NULL
,Cost MONEY NOT NULL
-- …Run Code Online (Sandbox Code Playgroud)