跳到主要内容

工作表之间的三种关联关系


本文列举了工作表之间的3种关联关系,并提供了一些示例以便您能够更好理解 ”关联记录“控件的用法。

一个应用可以看作是一个数据库,应用下包含若干 工作表,不同的表记录之间可能有以下三种关系: 

  • 1  对 1 的关系 
  • 1  对 多 的关系
  • 多 对 多 的关系

1对1的关系

这是最简单的关系,例如 一个商品只能有一个商品编号 ,一个员工只能有一个工号; 反过来,通过工号或商品编号 只能找到 一个 员工或商品。

这是一个对象(员工、商品)中的 两个属性(员工姓名和工号,商品名称和编号)。

通常,我们只需把这些一对一的属性信息 存放在一张对象表中即可,无需额外分开创建工作表进行管理。

还有另外一种 1对1的关系,是同一张表中,不同的对象之间的1对1的关系。

例如:乒乓球双打比赛中,每一个选手和他的搭档是1对1的。

一对一的关系相对较少,以下是一对一关系的其他一些场景示例:

  • 人员护照(每个人只有一本来自特定国家的护照,每本护照仅供一人使用)
  • 国旗(每个国家只有一个国旗,每个国旗只属于一个国家)
  • 配偶关系(每个人只有一个配偶)

1对多的关系

1对多的关系是比较复杂但也常见的,例如,一个客户可以有多个订单,一个订单只能归属于一个客户,客户表存储着客户的基本信息(联系人,公司地址,公司性质),订单表存储着客户订单的基本信息(客户、下单时间,发货日期,订单金额等等),通过关联表控件 建立两表之间的关联(因为共同需要客户信息)

如下图,一个客户 关联了多个订单。

一个客户记录详情页显示的效果(1对多的显示效果)

一个订单只能有一个客户

以下是一对多关系的其他一些示例:

  • 项目-任务(每个任务只能在一个项目下,但一个项目含有多个任务)
  • 领导-下属(每个员工只能有一个直接上司,但每个领导可以有多个下属)

多对多的关系

常见场景就是  人员-任务的关系, 一个人员会参与多个不同任务,一个任务也会有不同的参与人员。  人员表和任务表 通过 表关联 建立一个链接,在查看一个人员时,可以查看他参与的各个任务, 点击任何一个记录,都可以直接打开此任务,并能查看此任务下参与的人员。

以下是多对多关系的其他一些示例:

  • 配料 - 食谱(每种食品都可以用于多种配方,每种配方都需要多种配料。)
  • 医生 - 患者(每位医生看到很多患者,每位患者看到很多医生。)
  • 客户 - 产品(1个客户可以购买许多产品,1个产品都可以由不同的客户购买。)

文档问题反馈

文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧