我熟悉在事实和维度表之间创建桥接表。
在维度及其多维属性之间创建桥接表是个好主意吗?
例如,客户具有多个电话号码。我是否可以创建一个与customer维度具有一对多关系的customer telephone维度,或者创建一个桥接表是可取的?
发布于 2018-08-17 03:19:32
专门针对多个电话的示例进行回答。
我通常尽量避免使用桥牌桌。它们是设计的复杂性,保持简单是一种更好的方法(当然,并不总是可行)。
在每个客户有多部电话的情况下,我将创建两个属性:
第一个属性将包含一个主要客户电话,并且是必需的。
第二个属性可能包含一个或多个其他电话号码,连接成分隔字符串(即"415-111-1111,415-222-2222")。这种设计是可以接受的,因为您(很可能)将这些额外的电话仅用作报告中的描述性信息。而且,最有可能的是,你会有一个不同的,但合理的有限数量的这样的电话-比方说,0-3左右,这意味着这个属性将是空的或包含一个相当短的字符串。
上面的设计简单明了,适用于大多数情况,除非您需要对电话号码执行特定的分析,或者如果电话号码太多而必须全部使用。在这种情况下,我会将它们放入一个事实表("Customer Phones")中,它可能包含:
Phone_Profile是一个应该包含电话属性的维度,即“电话类型”{“固定线路”、“移动电话”}、“电话使用”{“主要”、“次要”}等。
这样事实表还可以是所有客户电话的周期性快照(每年、每月等),并用作电话目录。但是,很少需要这种精心设计(除非您是为呼叫中心或类似的电话密集型应用程序设计的)。
https://stackoverflow.com/questions/51844969
复制相似问题