映射多对多关系 (Visual Database Tools)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例分析平台系统(PDW)

通过多对多关系,可以将一个表中的每一行与另一个表中的多个行相关联,反之亦然。 例如,可以在 authors 表和 titles 表之间创建多对多关系,以匹配每个作者的所有书籍,并将每本书与所有作者匹配。 从任一表中创建一对多关系会错误地指示每本书只能有一个作者,或者每个作者只能写一本书。

在数据库中,通过连接表来处理表之间的多对多关系。 联接表包含要关联的两个表的主键列。 然后,从这两个表的主键列与交接表中的匹配列创建关系。 在 pubs 数据库中,titleauthor 表是一个连接表。

创建表之间的多对多关系

  1. 在数据库关系图中,添加要创建多对多关系的表。

  2. 通过右键单击关系图并选择快捷菜单中 “新建表” 来创建第三个表。 这将成为交界表。

  3. “选择名称”对话框中,更改系统分配的表名称。 例如,titles 表和 authors 表之间的交接表现在命名为 titleauthors

  4. 将其他两个表中的主键列复制到交接表。 可以将其他列添加到此表,就像可以添加到任何其他表一样。

  5. 在交汇表中,将主键设置为包含来自其他两个表的所有主键列。 有关详细信息,请参阅 “创建主键”。

  6. 定义两个主表与连接表之间的一对多关系。 连接表应位于您创建的两个关系的"多"端。 有关详细信息,请参阅 “创建外键关系”。

    注意

    在数据库关系图中创建交接表不会将数据从相关表插入到交接表中。 有关将数据插入表中的信息,请参阅“创建插入结果”查询(Visual Database Tools)。