适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
分析平台系统(PDW)
通过多对多关系,可以将一个表中的每一行与另一个表中的多个行相关联,反之亦然。 例如,可以在 authors
表和 titles
表之间创建多对多关系,以匹配每个作者的所有书籍,并将每本书与所有作者匹配。 从任一表中创建一对多关系会错误地指示每本书只能有一个作者,或者每个作者只能写一本书。
在数据库中,通过连接表来处理表之间的多对多关系。 联接表包含要关联的两个表的主键列。 然后,从这两个表的主键列与交接表中的匹配列创建关系。 在 pubs 数据库中,titleauthor
表是一个连接表。
在表之间创建多对多关系
在数据库关系图中,添加要创建多对多关系的表。
通过右键单击关系图并选择快捷菜单中 “新建表” 来创建第三个表。 这将成为交界表。
在 “选择名称”对话框中,更改系统分配的表名称。 例如,
titles
表和authors
表之间的交接表现在命名为titleauthors
。将其他两个表中的主键列复制到交接表。 可以将其他列添加到此表,就像可以添加到任何其他表一样。
在交汇表中,将主键设置为包含来自其他两个表的所有主键列。 有关详细信息,请参阅 如何:创建主键。
定义两个主表与连接表之间的一对多关系。 连接表应位于您创建的两个关系的"多"端。 有关详细信息,请参阅 如何:在表之间创建关系。
注意
在数据库关系图中创建交接表不会将数据从相关表插入到交接表中。 有关将数据插入表中的信息,请参阅 创建插入结果查询(Visual Database Tools)。