我正在 SQL Server 2012 中设计一个数据仓库数据库,它将用于创建多维数据集。假设我在原始关系数据库中有 3 个表
Supplier (SupplierId, SupplierName .....)
Invoice (InvoiceId, SupplierId, InvoiceCode, InvoiceName, InvoiceTotal ...)
InvoiceLineItem (InvoiceLineItemId, Description, InvoiceId, Rate, Count, Total)
我想把它转换成仓库数据库。所以我创建了 3 个维度和 2 个事实表
DimSupplier (SupplierId, SupplierName .....)
DimInvoice (InvoiceId, InvoiceCode, InvoiceName ....)
FactInvoice (InviceId, SupplierId, InvoiceTotal)
DimInvoiceLineItem (InvoiceLineItemId, Description)
FactInvoiceLineItem (InvoiceLineItemId, InvoiceId, SupplierId, Rate, Count, Total)
我的问题是我不确定使用外键的最佳方法是什么。我是否应该将 SupplierId 键从FactInvoice和FactInvoiceLineItem分别移动到DimInvoice和DimInvoiceLineItem中,这样事实就可以通过查看DimInvoice或DimInvoiceLineItem来找出这些信息。这里最好的方法是什么。我知道最好让它尽可能平坦。这里有什么帮助,因为我对数据分析很陌生?