试一试!
关系数据库的功能在于可跨表合并数据。 若要执行此操作,首先需要在表间建立关系。 然后,启用 Access 来合并查询、表单和报表中的数据。
若要查看为某数据库定义的所有现有关系,请打开一个 Access 模板,转到“数据库工具”选项卡,然后选择“关系”。
注意: 如果你打开空白数据库或尚未定义任何表关系,Access 将提示你添加表或查询。 需要至少两个表才能添加关系。 最好先生成所有表。 若要了解详细信息,请参阅使用查阅向导创建关系和使用“关系”窗格创建关系。
了解“关系”视图
“关系”视图中的线条表示表间的连接。 下图中,左侧的表是父表。 右侧的表是子表。 其间的线条连接用于匹配数据的字段(本例中即“订单 ID”和“产品 ID”)。
线条和符号表示表间的联系:
-
组线条表示当前正实施引用数据完整性。 这很好。 它将使数据保持同步。
-
在图示中,数字 1 表示该表格中仅可存在一个匹配记录。 在此处所示的“订单”表中,每个订单仅匹配一条记录。
-
∞ 符号表示多个记录可包含同一 ID。 在此处所示的“订单明细”表中,订单(由其订单 ID 表示)可能出现多次,因为同一订单可能包含多个产品。
表间关系的类型
间关系的类型有三种:
-
一对一。 每个表中的每个项仅显示一次。 例如,每个员工仅可使用一辆公司提供的汽车。 有关详细信息,请参阅创建一对一关系。
-
一对多。 一个表中的一个项与另一表中的多个项存在对应关系。 例如,每个采购订单可以包含多个产品。
-
多对多。 一个表中的一个或多个项可与另一表中一个或多个项存在对应关系。 例如,每个订单可以包含多个产品,而每个产品又可能出现在多个订单中。 若要了解详细信息,请参阅创建多对多关系。
一对多关系
设计良好的数据库中表间最常见的关系之一是一对多关系。
通常,表间关系取决于表中的主键。 请记住,主键是每条记录的唯一标识符(通常是数值)。 若要显示两个不同表中的信息相关联,通常可使用其中一个表中的主键创建关系。
例如,在此处所示的关系中,“联系人”表中的每个人都有一个 ID,这便是主键(由其旁边的钥匙符号表示)。 该 ID 也将显示在“资产”表”的“所有者”字段中。 若要向与资产关联的人员发送电子邮件,可获取“电子邮件地址”字段中的值。 为此,请查找“资产”表“所有者”字段中的值,然后在“联系人”表中搜索该 ID。 连接线一端的数字 1和另一端的 ∞ 符号表示这是个一对多关系,因此一个联系人可与多项资产关联。
编辑关系
如果你要修改现有数据库或从模板创建数据库,可编辑现有关系以满足需求。
注意: 如果你要使用的表已在使用中,必须首先将其关闭,并关闭使用这些表的打开对象。
-
选择“数据库工具”>“关系”。
-
选择连接两个相关表的线条。
提示: 如未看到所需关系,则在“设计”选项卡的“关系”组中,选择“所有关系”。
-
在“设计”选项卡上,选择“编辑关系”。
“表/查询”是位于左侧的父表(在本例中即“客户”表)。
“相关表/查询”是子表(在本示例中即“订单”表)。
即使表在“关系”视图中未按此顺序显示,其在对话框中位置也将表示其连接线的方向及关系。 例如,当关系为一对多关系时,这就非常重要,因为它表示左侧表是唯一的父表,右边的表是众多的子表。
-
若要更改连接这些表的字段,请在所示每个表下方选择不同的字段。 在本示例中,“客户”表中的“ID”字段连接到“订单”表中的“客户 ID”字段。
-
更改 Access 同步表间数据的方式。
“实施引用完整性”
为避免数据无效并在跨表关系间保持引用同步,请选中此选项。
例如,假设“员工”和“员工福利”表之间具有一对一关系。 如果某员工离开公司,你将其从“员工”表中删除,那么“员工福利”表中的相关员工记录也将被删除。
有时候实施引用完整性并无意义。 例如,假定“运货商”和“订单”之间存在一对多关系。 你删除某运货商,而该运货商映射到“订单”表中的订单。 这些订单将变为孤立项,即其仍包含运货商 ID,但由于其引用的记录不复存在,该 ID 也不再有效。
“级联更新相关字段”
若要确保相关字段中的数据在所有相关表中得到更新,请选择此项。
例如,假设你只想更改运货商 ID。 设置此选项可确保运货商 ID 不仅在“运货商”表中更新,还将在与该其相连接且包括该运货商 ID 的其他任何表(例如“订单”表)中得到更新。
“级联删除相关记录”
是否选择此项取决于是否需要在某些表中保留记录,即使其他表中可能已删除这些记录。
例如,假定你删除一个运货商。 如果选中此选项,Access 将删除引用该运货商 ID 的所有表中所有记录,包括(“订单”表中)由该运货商运送的所有订单。 仅在你确定要删除订单历史记录时选择此选项。
-
若要将表间关系从内部联接更改为外部联接,请选择“联接类型”按钮。 有关详细信息,请参阅创建具有外部联接的查询
删除表关系
注意: 如果你要使用的表已在使用中,必须首先将其关闭,并关闭使用这些表的打开对象。
删除表关系:
-
选择“数据库工具”>“关系”。
-
选择连接两个相关表的线条。
提示: 如未看到所需关系,则在“设计”选项卡的“关系”组中,选择“所有关系”。
-
选择“删除”键。 如果系统提示你是否确认要删除该关系,请选择“是”。
注意: 删除关系时,也将删除对该关系的引用完整性支持(若有)。 这将使 Access 不再阻止将导致一对多关系“多”侧出现孤立项的更改。