首页 > 解决方案 > 数据保险库建模外键

问题描述

我有一个关于特定数据保险库建模的问题。我有一个捕获呼叫中心 CALL 信息的源表,如下所示: CallId (business key) Date Call_alert Call_acw etc 同一个源表中还有一堆外键,如下所示:RouteID(呼叫最终在哪一行结束) ConnectionType(电话、电子邮件等)

通过每个外键,可以检索有关该键的额外信息(未链接到 CALL)。

我的问题是如何在我的模型中建模这些外键?我将它们作为属性保存在我的卫星中还是将它们建模为链接?还是我没有想到的其他选择?

谢谢!!

标签: data-modelingdata-vault

解决方案


我将专注于您提供的一个示例(RouteID),但每个示例的讨论可能都相同。

首先要记住的是,Data Vault 的目标是对业务和业务流程进行建模,而不是对存储数据的系统进行建模。外键可能表示有意义的事情(两个集线器之间的链接),也可能没有(数据库中的标准化产品,您可能不需要复制)。

在您的案例中,第一步是考虑 RouteID 及其链接到的数据对业务意味着什么。如果路线(或它所代表的线路)本身对业务来说是一个有意义的概念,那么它可能需要它自己的集线器、与之相关的数据的卫星,然后链接表以将其连接到您的呼叫数据。

另一方面,数据可能仅具有对另一个集线器(在您的情况下为呼叫)进行分类的意义,在这种情况下,请考虑将其反规范化为连接到呼叫集线器的卫星。请记住,您可以将多个卫星连接到一个集线器,没有什么可以阻止您拥有呼叫路由卫星、连接类型卫星等。

您需要为每个外键做出此决定,并且可能最终为每个外键做出不同的选择。例如,接听电话的员工几乎肯定会链接到另一个中心,因为您几乎肯定有其他数据要将员工链接到。您提到的连接类型之类的东西本身不太可能有意义,因此更有可能构成卫星的一部分。


推荐阅读