我正在设计一个使用数据仓库模型的数据仓库。我的数据仓库里有一个名为“专业”的实体。这些专业有一个基于代码的查找表,该表具有从Specialty_CD到描述的一对一映射。这个查找表(因为特殊代码可以改变含义)和我的保险库中的所有卫星表都有数据条目的历史。
我遇到了一个奇怪的例子,我想将数据库中的另一个名为" professional“的实体链接到一个专业实体,其中一个专业人员可以有多个专业。但是,没有专门实体的中心。我目前的解决方案只是拥有一个专业集线器,它为每个专业人员保存业务密钥和业务密钥散列,一个将professional BK散列映射到专业实践中的专业代码的链接表,以及一个从专业代码到描述的查找表。这里的问题是,链接表正在将集线器连接到查找表,而不是另一个集线器。我不禁觉得这打破了数据仓库模型。这是否违反了数据仓库模型的规则?这会毁了我整个模型的规范化吗?
我觉得为专业创建一个集线器会为数据检索带来额外的连接。由于专业代码已经是专业描述的唯一标识符,我宁愿为这个专业实体提供一个单独的查找表,而不是为我不需要的专用实体提供集线器和额外的卫星。特别是因为它只是在数据仓库中服务于专业代码的定义和描述的目的。
对于这种情况,欢迎提出任何建议。在这种情况下,通过将中心链接到查找表是否会破坏数据库?是否值得为这个特定实体创建一个中心和卫星?
谢谢!
发布于 2017-06-22 04:01:52
您已经回答了您自己的问题:“的专业代码--专业实践的专业代码”
专业显然是一个核心业务概念,是一个枢纽。它只有两个字段(代码和描述)这一事实与此无关。
数据仓库的工作模式。它不仅仅是“在数据库中为定义的目的服务”。如果它被删除了,数据库还能工作吗?例如,我从数据库将继续运行的地址中删除了邮政编码。我猜如果你删除了专业,有些报告可能会有问题。
当您创建一个原始数据库时,您需要适应这样一个事实:您将有更多的表(大约7是一般的度量)。
pcd
发布于 2017-06-28 09:41:12
我觉得你的模特应该像这样
请注意,在此设计中,您需要在链接表中使用一个End_Date,因为您可能需要独立于专业或专业的状态退出一个单独的关联,并且您需要确保您的ETL逻辑获取‘删除’。如果与专业相关的代码也可以更改,那么您将需要在链接表和专业SAT之间进行另一层抽象,以确保链接保持稳定。
https://stackoverflow.com/questions/44208890
复制相似问题