使用关系

表关系入门

你的浏览器不支持视频。

试一试!

关系数据库的功能在于可跨表合并数据。 若要执行此操作,首先需要在表间建立关系。 然后,启用 Access 来合并查询、表单和报表中的数据。

若要查看为某数据库定义的所有现有关系,请打开一个 Access 模板,转到“数据库工具”选项卡,然后选择“关系”。

注意: 如果你打开空白数据库或尚未定义任何表关系,Access 将提示你添加表或查询。 需要至少两个表才能添加关系。 最好先生成所有表。 若要了解详细信息,请参阅使用查阅向导创建关系使用“关系”窗格创建关系

了解“关系”视图

“关系”视图中的线条表示表间的连接。 下图中,左侧的表是父表。 右侧的表是子表。 其间的线条连接用于匹配数据的字段(本例中即“订单 ID”和“产品 ID”)。

关系由父字段和子字段间的线条表示。

线条和符号表示表间的联系:

  • 组线条表示当前正实施引用数据完整性。 这很好。 它将使数据保持同步。

  • 在图示中,数字 1 表示该表格中仅可存在一个匹配记录。 在此处所示的“订单”表中,每个订单仅匹配一条记录。

  • ∞ 符号表示多个记录可包含同一 ID。 在此处所示的“订单明细”表中,订单(由其订单 ID 表示)可能出现多次,因为同一订单可能包含多个产品。

表间关系的类型

间关系的类型有三种:

  • 一对一。 每个表中的每个项仅显示一次。 例如,每个员工仅可使用一辆公司提供的汽车。 有关详细信息,请参阅创建一对一关系

  • 一对多。 一个表中的一个项与另一表中的多个项存在对应关系。 例如,每个采购订单可以包含多个产品。

  • 多对多。 一个表中的一个或多个项可与另一表中一个或多个项存在对应关系。 例如,每个订单可以包含多个产品,而每个产品又可能出现在多个订单中。 若要了解详细信息,请参阅创建多对多关系

一对多关系

设计良好的数据库中表间最常见的关系之一是一对多关系。

通常,表间关系取决于表中的主键。 请记住,主键是每条记录的唯一标识符(通常是数值)。 若要显示两个不同表中的信息相关联,通常可使用其中一个表中的主键创建关系。

例如,在此处所示的关系中,“联系人”表中的每个人都有一个 ID,这便是主键(由其旁边的钥匙符号表示)。 该 ID 也将显示在“资产”表”的“所有者”字段中。 若要向与资产关联的人员发送电子邮件,可获取“电子邮件地址”字段中的值。 为此,请查找“资产”表“所有者”字段中的值,然后在“联系人”表中搜索该 ID。 连接线一端的数字 1和另一端的 ∞ 符号表示这是个一对多关系,因此一个联系人可与多项资产关联。

一对多关系

编辑关系

如果你要修改现有数据库或从模板创建数据库,可编辑现有关系以满足需求。

注意: 如果你要使用的表已在使用中,必须首先将其关闭,并关闭使用这些表的打开对象。

  1. 选择“数据库工具”>“关系”。

  2. 选择连接两个相关表的线条。

    提示: 如未看到所需关系,则在“设计”选项卡的“关系”组中,选择“所有关系”。

  3. 在“设计”选项卡上,选择“编辑关系”。

    编辑表间现有关系

    表/查询”是位于左侧的父表(在本例中即“客户”表)。

    相关表/查询”是子表(在本示例中即“订单”表)。

    即使表在“关系”视图中未按此顺序显示,其在对话框中位置也将表示其连接线的方向及关系。 例如,当关系为一对多关系时,这就非常重要,因为它表示左侧表是唯一的父表,右边的表是众多的子表。

  4. 若要更改连接这些表的字段,请在所示每个表下方选择不同的字段。 在本示例中,“客户”表中的“ID”字段连接到“订单”表中的“客户 ID”字段。

  5. 更改 Access 同步表间数据的方式。

    “实施引用完整性”

    为避免数据无效并在跨表关系间保持引用同步,请选中此选项。

    例如,假设“员工”和“员工福利”表之间具有一对一关系。 如果某员工离开公司,你将其从“员工”表中删除,那么“员工福利”表中的相关员工记录也将被删除。

    有时候实施引用完整性并无意义。 例如,假定“运货商”和“订单”之间存在一对多关系。 你删除某运货商,而该运货商映射到“订单”表中的订单。 这些订单将变为孤立项,即其仍包含运货商 ID,但由于其引用的记录不复存在,该 ID 也不再有效。

    “级联更新相关字段”

    若要确保相关字段中的数据在所有相关表中得到更新,请选择此项。

    例如,假设你只想更改运货商 ID。 设置此选项可确保运货商 ID 不仅在“运货商”表中更新,还将在与该其相连接且包括该运货商 ID 的其他任何表(例如“订单”表)中得到更新。

    “级联删除相关记录”

    是否选择此项取决于是否需要在某些表中保留记录,即使其他表中可能已删除这些记录。

    例如,假定你删除一个运货商。 如果选中此选项,Access 将删除引用该运货商 ID 的所有表中所有记录,包括(“订单”表中)由该运货商运送的所有订单。 仅在你确定要删除订单历史记录时选择此选项。

  6. 若要将表间关系从内部联接更改为外部联接,请选择“联接类型”按钮。 有关详细信息,请参阅创建具有外部联接的查询

删除表关系

注意: 如果你要使用的表已在使用中,必须首先将其关闭,并关闭使用这些表的打开对象。

删除表关系:

  1. 选择“数据库工具”>“关系”。

  2. 选择连接两个相关表的线条。

    提示: 如未看到所需关系,则在“设计”选项卡的“关系”组中,选择“所有关系”。

  3. 选择“删除”键。 如果系统提示你是否确认要删除该关系,请选择“”。

注意: 删除关系时,也将删除对该关系的引用完整性支持(若有)。 这将使 Access 不再阻止将导致一对多关系“多”侧出现孤立项的更改。

希望获得更多信息?

创建、编辑或删除关系

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。