我正在为联系历史事实表设计数据仓库事实表。我当前的架构看起来像这样:
[FK] DateKey INT
[FK] TimeKey INT
[NK] CustomerNK INT
[NK] CustomerPhoneNK INT
[FK] ContactTypeKey INT
[FK] ContactResultKey INT
[BK] ContactRefBK INT
ContactTS DATETIME
Counter INT (=1)
我的应用程序要求之一是为维度ContactResult
上的选择列表找到最新的。ContactType
该ContactType
维度具有一个ContactClass
属性,该属性将用于标识要作为过滤依据的值范围。
上述结构让我可以通过 获取ContactType
选择的所有联系信息ContactClass
,并且我可以处理该列表以获取最新值。
问题是,任何人都可以建议对上述内容进行修改,以便更轻松地获取特定的最近联系事件ContactClass
吗?目前这是一个事务性事实表,但如果它可以提高可用性,我很乐意对其进行更改。
此操作将针对广泛的客户 (200K+) 相当频繁地运行,因此性能很重要。该操作将在 Web 界面上以 C# 代码完成,因此在这种情况下,特定于 BI 工具的解决方案对我没有用处。
到目前为止,我想出的唯一想法是一个累积事实表,它只记录每个ContactClass
. 对此选项的任何改进将不胜感激。