access 2007表关系指南
时 间:2008-03-24 07:57:24
作 者:Microsoft ID:11 城市:上海 QQ:3002789054
摘 要:Access 2007表关系指南
正 文:
良好数据库设计目标之一是消除数据冗余(重复数据)。要实现该目标,可将数据拆分为多个基于主题的表,以使每个因素只显示一次。然后,通过在相关表中放置公共字段来为 Microsoft Office Access 2007 提供将拆分的信息组合到一起的方法。但是,要正确执行该步骤,必须首先了解表之间的关系,然后在 Office Access 2007 数据库中指定这些关系。
有关详细信息,请参阅数据库设计基础一文。
简介
在数据库中为每个主题创建表后,必须为 Office Access 2007 提供在需要时将这些信息重新组合到一起的方法。具体方法是在相关的表中放置公共字段,并定义表之间的关系。然后,可以创建查询、窗体和报表,以同时显示几个表中的信息。例如,下面显示的窗体包含来自几个表的信息:
“受票方”框中的客户名称是从“客户”表中检索到的,“订单 ID”和“订单日期”值来自“订单”表,“产品名称”来自“产品”表,“单价”和“数量”值来自“订单明细”表。这些表以多种方式互相链接在一起,以便将各自的信息呈现到窗体中。
在上述示例中,表中的各个字段必须互相协调,这样它们才能显示有关相同定单的信息。这种协调是使用表之间的关系来实现的。通过是通过匹配键字段中的数据来建立表关系,键字段通常是两个表中使用相同名称的字段。在大多数情况下,这些匹配字段是其中一个表的主键(它为每条记录提供唯一标识符),并且是另一个表的外键。例如,通过在“员工”和“订单”表的“员工 ID”字段之间创建表关系,可以将员工和他们负责的订单相关联。
表关系的类型
有三种类型的表关系。
- 一对多关系
假设有一个订单跟踪数据库,其中包含“客户”表和“订单”表。客户可以签署任意数量的订单。“客户”表中显示的任何客户都是这样,“订单”表中可以显示很多订单。因此,“客户”表和“订单”表之间的关系就是一对多关系。
要在数据库设计中表示一对多关系,请获取关系“一”方的主键,并将其作为额外字段添加到关系“多”方的表中。例如在本例中,可将一个新字段(即“客户”表中的 ID 字段)添加到“订单”表中,并将其命名为“客户 ID”。然后,Access 可以使用“订单”表中的“客户 ID”号来查找每个订单的正确客户。
- 多对多关系
考虑“产品”表和“订单”表之间的关系。单个订单中可以包含多个产品。另一方面,一个产品可能出现在多个订单中。因此,对于“订单”表中的每条记录,都可能与“产品”表中的多条记录对应。此外,对于“产品”表中的每条记录,都可以与“订单”表中的多条记录对应。这种关系称为多对多关系,因为对于任何产品,都可以有多个订单,而对于任何订单,都可以包含许多产品。请注意,为了检测到表之间的现有多对多关系,务必考虑关系的双方。
要表示多对多关系,您必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。因此,第三个表记录关系的每个匹配项或实例。例如,“订单”表和“产品”表有一种多对多的关系,这种关系是通过与“订单明细”表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中。
- 一对一关系
在一对一关系中,第一个表中的每条记录在第二个表中只有一个匹配记录,而第二个表中的每条记录在第一个表中只有一个匹配记录。这种关系并不常见,因为多数以此方式相关的信息都存储在一个表中。可以使用一对一关系将一个表分成许多字段,或出于安全原因隔离表中的部分数据,或存储仅应用于主表的子集的信息。标识此类关系时,这两个表必须共享一个公共字段。
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)