如何:映射多对多关系

多对多关系使您得以将一个表中的每一行与另一个表中的多行相关,或者将后者中的每一行与前者中的多行相关。 例如,可创建 authors 表与 titles 表之间的多对多关系,以将每位作者与他或她的所有书籍匹配并且将每本书与其所有作者匹配。 从上述任何一个表创建一对多关系都会错误地表示每本书只能有一位作者或者每位作者只能编写一本书。

表与表之间的多对多关系通过联接表存储于数据库中。 联接表包含要相关的两个表的主键列。 然后,分别创建从每个表的主键列到联接表中的匹配列之间的关系。 在 pubs 数据库中,titleauthor 表是联接表。

备注

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

创建表与表之间的多对多关系

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

  2. 通过右击关系图,然后从快捷菜单中选择**“新建表”**创建第三个表。 该表将成为联接表。

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

  4. 将其他两个表中的主键列都复制到联接表中。 与任何其他表一样,也可在此表中添加其他列。

  5. 在联接表中,将主键设置为包含来自其他两个表中的所有主键列。 有关详细信息,请参见如何:创建主键

  6. 分别定义每个主表与联接表之间的一对多关系。 联接表应位于您所创建的这两个关系的“多”方。 有关详细信息,请参见如何:创建表与表之间的关系

    备注

    在数据库关系图中创建联接表并不会将数据从相关表插入联接表中。有关将数据插入表中的信息,请参见如何:创建插入结果查询

请参见

其他资源

使用关系

处理数据库关系图