我继承了基于星型模式的报告。
但是键(链接)是文本字段。不是数字 ID。
例如:
DimClient 的值如下:
Client Name
JLR
Mercedes
Audi
Volvo
FactSales 有值链接:
id date client value
1 01-01-2024 JLR 50000
2 05-01-2024 Audi 40000
这是不好的做法吗?
是否建议通过向 Dim 添加索引列来处理此问题,然后将事实加入到客户端名称上的 Dim 并从 Dim 中获取 id,然后从事实表中删除客户端名称?
不,作为文本键就可以了。 VertiPaq 使用字典编码来处理类似的事情。
报告数据库不遵循与事务数据库相同的设计模式,并且可以使用非规范化等功能(甚至推荐)。
正如 @davidbacci 指出的那样,文本值对于模型中的关系效果很好。在数据仓库中使用代理键有很多好处,但您应该只在报告中使用。
替代关键福利说明此处。