共计 1826 个字符,预计需要花费 5 分钟才能阅读完成。
提醒:本文最后更新于 2020-08-07 14:45,文中所关联的信息可能已发生改变,请知悉!
表关系的类型
ACCESS 中表的关系有三种类型,他们是一对一、一对多、多对多。
一对一关系
一对一关系,在第一个表中的每个记录可以仅有一个匹配记录的第二个表中,,然后在第二个表中的每条记录可以仅有一个匹配记录的第一个表。此类型的关系不常见,因为在大多数情况下,将以这种方式相关的信息存储在同一个表。您可以使用一对一关系将分成许多字段,或隔离出于安全考虑,表的一部分或存储信息仅适用于主表的子集的表。当执行识别这种关系时,请两个表必须共享公共字段。
一对多关系
请考虑订单跟踪数据库,包括客户表和订单表。客户可以将添加任意数量的订单。是这样,任何客户表中表示的客户,可以有多个订单表中表示的订单。客户表和订单表之间的关系,因此,是一个一对多关系。
表示一对多关系数据库设计中,执行关系的 ” 一 ” 方的主键和将其作为其他字段或域添加到关系的 ” 多 ” 方表中。在此例中,例如,添加新字段 - 客户表中的 ID 字段 — 到订单表并将其命名客户 id。Access 可以再使用的客户 ID 号订单表中以找到正确的每个订单的客户。
多对多关系
请考虑产品表和订单表之间的关系。单个订单可以包含多个产品。另一方面,单个产品可以出现在多个订单。因此,订单表中的每条记录,可以有许多记录在产品表中。此外,在产品表中每条记录,可以有许多记录中订单表。这种关系称为多对多关系,因为任何产品,可以有多个订单,然后按任何顺序,对于可能有许多产品。请注意,检查表之间的现有多对多关系,务必要考虑的关系的两面。
要表示多对多关系,您必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。因此,第三个表记录关系的每个匹配项或实例。例如,“订单”表和“产品”表有一种多对多的关系,这种关系是通过与“订单明细”表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中。
创建多对多关系
在多对多关系中,两个表的每条记录可以与另一个表中的零条、一条或多条记录相关。多对多关系理解起来比较困难,创建多对多关系与创建一对一或一对多关系的方法不同。要创建后两种这些关系,只需用线条连接相应的字段即可。而创建多对多关系,则需要创建一个新表以连接其他两个表。此新表称为 中间 表(有时称为 链接 或联接 表)。
在上文所述的情景中,你创建了“订单明细”表,对于任意给定订单中的每一项,该表中的记录包含其在“订单”表中 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 |
创建中间表
- 选择“创建 ”>“ 表”。
- 选择“保存”。
- 对于“表单名称 ”,输入描述性标题。为指示其用途,可在表单名称中包含 联接 或中间。
在中间表中创建字段
Access 将自动添加 ID 字段作为表中第一列。更改该字段以匹配多对多关系中的第一个表的 ID。例如,如果第一个表是名为“订单 ID”的“订单”表,并且其主键是数字,请将新表中“ID”字段的名称更改为“订单 ID”,并使用 数字 作为数据类型。
- 在“数据表视图”中,选择“ID”列标题,然后键入该字段的新名称。
- 选择刚刚重命名的字段。
- 在“字段 ”选项卡上的“ 数据类型 ”下,选择与原始表中的字段匹配的数据类型,如 数字 或短文本。
- 选择“单击以添加”,然后选择与第二个表中主键相匹配的数据类型。在已选中的列标题中,键入第二个表中的主键字段的名称,如“产品 ID”。
- 若要跟踪有关这些记录的任何其他信息(如项数),请创建更多字段。
组合主 ID 字段
创建包含要连接的两个表中 ID 的字段后,请根据这些 ID 在中间表中创建主键。
- 在“设计视图”中,打开中间表。
- 选择包含 ID 的两行。(如果你按照前述过程操作,则为前两行。)
- 选择“设计 ”>“ 主键”。
两个 ID 字段旁边将显示“键”图标。
连接三个表以创建多对多关系
在每个表的主键字段和中间表的匹配字段之间创建一对多关系,以完成多对多关系。有关如何执行此操作的详细信息,请参阅表关系入门。
完成后,关系应如下所示: