首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >维度建模中的桥接表

维度建模中的桥接表
EN

Stack Overflow用户
提问于 2018-08-14 23:30:03
回答 1查看 345关注 0票数 0

我熟悉在事实和维度表之间创建桥接表。

在维度及其多维属性之间创建桥接表是个好主意吗?

例如,客户具有多个电话号码。我是否可以创建一个与customer维度具有一对多关系的customer telephone维度,或者创建一个桥接表是可取的?

EN

回答 1

Stack Overflow用户

发布于 2018-08-17 03:19:32

专门针对多个电话的示例进行回答。

我通常尽量避免使用桥牌桌。它们是设计的复杂性,保持简单是一种更好的方法(当然,并不总是可行)。

在每个客户有多部电话的情况下,我将创建两个属性:

  • 主电话
  • Other Phones

第一个属性将包含一个主要客户电话,并且是必需的。

第二个属性可能包含一个或多个其他电话号码,连接成分隔字符串(即"415-111-1111,415-222-2222")。这种设计是可以接受的,因为您(很可能)将这些额外的电话仅用作报告中的描述性信息。而且,最有可能的是,你会有一个不同的,但合理的有限数量的这样的电话-比方说,0-3左右,这意味着这个属性将是空的或包含一个相当短的字符串。

上面的设计简单明了,适用于大多数情况,除非您需要对电话号码执行特定的分析,或者如果电话号码太多而必须全部使用。在这种情况下,我会将它们放入一个事实表("Customer Phones")中,它可能包含:

  • Customer_ID
  • Phone_Profile_ID
  • Date
  • Phone Number

Phone_Profile是一个应该包含电话属性的维度,即“电话类型”{“固定线路”、“移动电话”}、“电话使用”{“主要”、“次要”}等。

这样事实表还可以是所有客户电话的周期性快照(每年、每月等),并用作电话目录。但是,很少需要这种精心设计(除非您是为呼叫中心或类似的电话密集型应用程序设计的)。

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

https://stackoverflow.com/questions/51844969

复制
相关文章

相似问题

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