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