使用关系

创建多对多关系

Surface Book 设备照片

试一试!

什么是多对多关系?

多对多关系是最常用的表关系。 这种关系能够提供关键信息,例如销售人员联系了哪些客户以及客户订单中有哪些产品。

当一个表中的一个或多个项可以与另一表中一个或多个项之间存在关系时,即存在多对多关系。 例如:

  • “订单”表包含多个客户的订单(“客户”表中已列出这些客户),并且一个客户可能有多个订单。

  • “产品”表中包含你销售的各种产品,这些产品组成“订单”表中的许多订单。

  • 一个订单可能包含特定产品的一个实例(或多个实例)和/或多个产品的一个实例(或多个实例)。

例如,客户 Elizabeth Andersen 的订单编号 1012 可能包含一个产品 12、一个产品 15 和五个产品 30。

创建多对多关系

创建多对多关系与创建一对一或一对多关系的方法不同。 要创建后两种这些关系,只需用线条连接相应的字段即可。 而创建多对多关系,则需要创建一个新表以连接其他两个表。 此新表称为中间表(有时称为链接联接表)。

在上文所述的情景中,你创建了“订单明细”表,对于任意给定订单中的每一项,该表中的记录包含其在“订单”表中 ID 和“产品”表中 ID。 使用两表的组合键为该表创建主键。

在我们的案例中,Elizabeth Andersen 的订单编号 1012 包含产品 12、15 和 30。 这意味着订单明细条目如下所示:

订单 ID

产品 ID

1012

12

1012

15

1012

30

Elizabeth 订购了一个产品 12、一个产品 15 和五个产品 30。 我们不能在另一行中添加 1012 和 30,因为订单 ID 和产品 ID 共同构成了我们的主键,主键必须是唯一的。 作为替代,我们将“数量”字段添加到“订单明细”表。

订单 ID

产品 ID

数量

1012

12

1

1012

15

1

1012

30

5

创建中间表

  1. 选择“创建”>“”。

  2. 选择 "保存 保存 "。

  3. 对于“表单名称”,输入描述性标题。 为指示其用途,可在表单名称中包含联接中间

在中间表中创建字段

Access 将自动添加 ID 字段作为表中第一列。 更改该字段以匹配多对多关系中的第一个表的 ID。 例如,如果第一个表是名为“订单 ID”的“订单”表,并且其主键是数字,请将新表中“ID”字段的名称更改为“订单 ID”,并使用数字作为数据类型。

  1. 在“数据表视图”中,选择“ID”列标题,然后键入该字段的新名称。

  2. 选择刚刚重命名的字段。

  3. 在“字段”选项卡上的“数据类型”下,选择与原始表中的字段匹配的数据类型,如数字短文本

  4. 选择“单击以添加”,然后选择与第二个表中主键相匹配的数据类型。 在已选中的列标题中,键入第二个表中的主键字段的名称,如“产品 ID”。

  5. 若要跟踪有关这些记录的任何其他信息(如项数),请创建更多字段。

组合主 ID 字段

创建包含要连接的两个表中 ID 的字段后,请根据这些 ID 在中间表中创建主键。

  1. 在“设计视图”中,打开中间表。

  2. 选择包含这些 Id 的行。 (如果你按照前面的过程操作,这些是前两行。 )

  3. 选择“设计”>“主键”。
    ID 字段旁边将显示键图标。

    表中主键的屏幕截图

连接三个表以创建多对多关系

在每个表的主键字段和中间表的匹配字段之间创建一对多关系,以完成多对多关系。 有关如何执行此操作的详细信息,请参阅表关系入门

完成后,关系应如下所示:

三个数据库表之间连接的屏幕截图

希望获得更多信息?

表关系入门

创建、编辑或删除关系

注意:  本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版

与 Microsoft 365 一起领先他人一步

需要更多帮助?

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×