Sql server MDS中的关系

Sql server MDS中的关系,sql-server,business-intelligence,mds,Sql Server,Business Intelligence,Mds,我有一个问题,关于如何在两个不同实体的成员之间建立关系? 例如,在1:1的情况下,可以创建引用实体的基于域的属性。 但如果你有一个客户有多个地址,你有一个地址实体 当您更新客户实体的Address属性的成员时,基于1:M,我们如何能够显示该关系并将Address实体连接到客户实体 因此,如果客户实体中的地址成员发生更改,那么由于我们没有映射关系,更新过程将如何工作 我知道在M:M中,你会使用桥牌桌。在MDS数据库中,哪个表将包含该关系信息 如对文章、博客文章/视频或想法有任何建议,将不胜感激 谢

我有一个问题,关于如何在两个不同实体的成员之间建立关系? 例如,在1:1的情况下,可以创建引用实体的基于域的属性。 但如果你有一个客户有多个地址,你有一个地址实体

当您更新客户实体的Address属性的成员时,基于1:M,我们如何能够显示该关系并将Address实体连接到客户实体

因此,如果客户实体中的地址成员发生更改,那么由于我们没有映射关系,更新过程将如何工作

我知道在M:M中,你会使用桥牌桌。在MDS数据库中,哪个表将包含该关系信息

如对文章、博客文章/视频或想法有任何建议,将不胜感激

谢谢, Andrea

在MDS(主数据服务)中,您可以使用层次结构功能

-选项1:创建显式层次结构

如果您使用的是SQL Server 2012(也可能是2014),则显式层次结构将解决此问题。 (见:)

基本上,您将能够使用客户实体行作为层次结构中的父节点(考虑树结构),并将一个或多个地址实体行分配为每个客户的子节点

顾名思义,这需要“明确”管理。。意味着某人将使用MDS层次结构UI页面手动执行此操作(拖放),或者您可以使用SSIS包在加载暂存表时自动执行此操作。 (见:)

注意:显式层次结构已被弃用(我认为从SQL 2016开始)

-选项2:创建派生层次结构(桥接表-M:M)

这类似于前面为M:M关系提出的桥接表概念,但是在MDS上下文中

  • 创建另一个实体,称之为CustomerAddressRelationship(比方说),现在称之为CAR

  • 向CAR添加2个域属性:一个指向客户实体,另一个指向地址实体

  • 现在,如果需要,您可以在这个CAR实体上以CAR>Customer>Address的格式创建一个派生层次结构。 阅读更多关于

  • -选项3:创建派生层次结构(1:M)

  • 不要创造汽车。只需在Address实体中添加一个列CustomerID(比方说)。这样,每个地址可能有0个或1个与之相关的客户


  • 希望这能有所帮助。

    我不确定关于这个主题的文章或视频,但如果你有一对多的关系,这通常意味着为此创建一个单独的表(假设客户可以有无限的地址,或者你不想限制他们可以拥有的数量)。e、 g.实例中的
    地址
    表,带有指向客户ID的链接。如果您的客户可以有固定的最大金额(例如,最多允许3个地址),如果您愿意,您可以将其保留在一个表中(Address1、Address2、Address3)。这取决于……您将需要一个Customer Addresses表,但不太确定这是否应该在MDS中维护。