尺寸建模中的桥表
Posted
技术标签:
【中文标题】尺寸建模中的桥表【英文标题】:Bridge table in dimensional modeling 【发布时间】:2018-08-14 15:30:02 【问题描述】:我熟悉在事实和维度表之间创建桥接表。
在维度及其多维属性之间创建桥表是个好主意吗?
例如,客户有多个电话号码。我可以只创建一个与客户维度具有一对多关系的客户电话维度,还是建议创建一个桥接表?
【问题讨论】:
一篇关于此问题可能解决方案的相当全面的文章:dwbi1.wordpress.com/2011/03/13/… 谢谢,很有帮助。 【参考方案1】:专门针对多个电话示例进行回答。
我通常会尽量避免使用桥接表。它们是设计的复杂性,保持简单是一种更好的方法(当然,尽管并非总是可行)。
如果每个客户有多个电话,我会创建 2 个属性:
主要电话 其他手机第一个属性将包含主要客户电话并且是强制性的。
第二个属性可能包含一个或多个其他电话号码,连接成一个分隔字符串(即“415-111-1111、415-222-2222”)。这种设计是可以接受的,因为您(很可能)将这些额外的电话仅用作报告中的描述性信息。此外,您很可能会拥有数量不同但数量有限的此类电话 - 比如说 0-3 左右,这意味着此属性将为空或包含相当短的字符串。
上述设计简单明了,适用于大多数情况,除非您需要对电话号码执行特定分析,或者电话号码太多而必须全部使用。在这种情况下,我会将它们放入一个事实表(“客户电话”)中,其中可能包含:
客户 ID Phone_Profile_ID 日期 电话号码Phone_Profile 是一个维度,应该包含电话属性,即“Phone Type”“Land Line”、“Mobile”、“Phone Use”“Primary”、“Secondary” 等。
此类事实表也可以是所有客户电话的定期快照(每年、每月等),并用作电话目录。但是,很少需要这种精心设计(除非您为呼叫中心或类似的电话密集型应用程序设计)。
【讨论】:
以上是关于尺寸建模中的桥表的主要内容,如果未能解决你的问题,请参考以下文章