维度建模是一种数据仓库设计方法,其核心是围绕业务过程建立事实表和维度表。事实表主要存储与业务过程相关的度量数据,而维度表则描述这些度量数据的属性。
以下是设计事实表时需要遵循的几个重要原则,来源于《维度建模》那本书上,结合实际例子进行了说明。
目录
原则一:尽可能包含所有与业务过程相关的事实
在设计事实表时,应尽量包含所有与业务过程相关的事实。即使存在冗余,由于事实通常为数字型,带来的存储开销不会很大。例如,在销售业务的事实表中,应包含销售金额、销售数量、折扣金额等与销售过程密切相关的所有事实。
示例1:订单下单事实表
该表记录订单下单过程中的相关事实。
CREATE TABLE OrderFact (
OrderID INT PRIMARY KEY,
ProductID INT,
CustomerID INT,
OrderDate DATE,
OrderAmount DECIMAL(10, 2),
DiscountAmount DECIMAL(10, 2),
Quantity INT
);
原则二:只选择与业务过程相关的事实
在选择事实时,应注意只选择与当前业务过程相关的事实。例如,在订单下单的业务过程事实表中,不应包含支付金额这种与支付业务过程相关的事实。这样可以确保每个事实表只记录一个业务过程的度量数据,避免混淆。
示例2:支付事实表
该表记录支付过程中的相关事实。
CREATE TABLE PaymentFact (
PaymentID INT PRIMARY KEY,
OrderID INT,
PaymentDate DATE,
PaymentAmount DECIMAL(10, 2)