首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有1到M和M*M关系的数据仓库模型

具有1到M和M*M关系的数据仓库模型
EN

Stack Overflow用户
提问于 2016-05-11 13:38:55
回答 2查看 138关注 0票数 2

我在建立一个数据仓库。让我解释一下情况:

  • 一个活动有很多次会议
  • 一个事件有许多帐户。
  • 事件有首日和结束日期。
  • 会议必须是活动的一部分。
  • 一个会议有一个或多个主管(主管可以监督许多会议)-多到多
  • 一个会议有一个或多个发行人(发行人可以参加许多会议)-多到多。
  • 一个会议有一个或多个投资者(投资者可以参加许多会议)-多到多。

这是我的模型:

我在googled上搜索了一下,我发现我们称之为桥接解决方案,但我还不太清楚它的用途,以及是否必须在我的模型中使用它。

坦克斯

EN

回答 2

Stack Overflow用户

发布于 2016-05-13 16:58:58

换句话说,桥模型可以称为雪花模式。当涉及到处理许多到多个关系时,这个方法非常有用,就像在您的场景中一样。使用此模型,您可以将维度表分解为子维度表。通常情况下,维度表有唯一的行。如果我们从您的场景中得到这个示例,Dim_meeting和dim_supervisor有彼此独特的行。也就是说,主管中的每一行都是唯一的,没有重复的数据。因此,如果没有两个维度之间的桥接表,就很难处理多到多个关系。在我举的(会议和主管)的同一个例子中,一个主管可以监督许多会议。根据你的说法,一次会议可能会有很多主管。

在这种情况下,如果在两者之间引入一个桥接表,桥接器表将有它自己的唯一ID (代理密钥-主键)、主管id和会议ID。会议维度将具有所有唯一的会议记录,而主管维度将具有唯一的主管记录。桥表将包含多个主管记录和多个会议记录,以便在桥表中创建多到多个关系。

这就是它的工作原理。

我还使用桥接器表处理了许多类似的情况,这些桥接表在解决类似问题时似乎非常有效。希望你能有个主意

票数 0
EN

Stack Overflow用户

发布于 2016-05-17 01:13:35

另一种选择是有一个EVENT_ACTIVITY事实,其中所有内容都表示为“活动”:

代码语言:javascript
复制
ACTIVITY_ID
PARENT_ACTIVITY_ID
ACTIVITY_LEVEL
ACTIVITY_TYPE
START_DATE
END_DATE
PERSON_ID
other DIM Keys

活动的类型包括活动、会议、出席、监督,以及你可能想要做的任何事情。对于多到多个会议/主管,您将有多个具有相同父事件的监督活动记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37164433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档