要创建相关表,需要定义两个表之间的关系。根据您在关系中指定的标准,当关系的一端某个字段中的值,该字段称为匹配字段(有时称为键字段),与关系另一端的匹配字段中的值成功比较时,即建立了关系。
例如,您可以创建一个关系,使学生表的“学生 ID”字段中的值等于班级表的“学生 ID”字段中的数,这两个表中的记录即建立了关联。
要创建、更改和查看数据库中的关系,请参阅使用关系图。
匹配字段可以是识别表中记录的一个字段或多个字段的组合。例如,匹配字段可以保存日期,当与关系的标准进行对比时,确定该关系是否成功。
键是匹配字段的类型。键通常可存储用作 ID(例如产品 ID)的值。键有两种类型:
•主键 – 与所标识的记录在同一个表中的字段。主键值必须唯一并且不能为空(非 Null)。一个表中只有一个主键,但主键可包含多个字段。默认情况下,当您在“管理数据库”对话框中创建文件或者创建表时,新表将包含一个主键字段。
•外键 – 表中标识另一个表中记录的字段。外键中的值不必在表中唯一,可以为空 (Null)。一个表中可以有多个外键。
在“销售”数据库中,“客户”表和“发票”表每一个都可以使用字段“客户 ID”,以唯一标识每位客户和每个交易。“客户”表中的“客户 ID”字段为主键字段,因为该字段唯一标识每位客户。“发票”表中的“客户 ID”字段有为外键字段,因为其值来源于另一个表,即本例中的“客户”表。但是两种表中的“客户 ID”字段都是匹配字段。
当两个表使用“客户 ID”字段来相关,则“客户”表中的记录可以显示入口(其显示具有匹配“客户 ID”的每张发票),而在发票表中具有相同“客户 ID”的每张发票可以显示一致的客户数据。
FileMaker Pro Advanced 搜索相关表中匹配字段的索引值,以确定哪些相关记录符合当前表中记录的关系标准。因此,必须能够为相关表中的匹配字段建立索引。
匹配字段必须属于以下字段类型之一:文本、数值、日期、时间、时间戳或计算(返回文本、数值、日期、时间或时间戳结果)。
关系可促进输入一致的数据并在数据库中强制执行规则。FileMaker Pro Advanced 支持以下关系类型。
关系类型 | 说明 |
一对一 | 表中的一个记录仅关联另一个表中的一个记录。请参阅一对一关系。 |
一对多或 | 表中的一个记录可以关联另一个表中的一个或多个记录。或者,表中的一个或多个记录可以关联另一个表中的一个记录。请参阅一对多关系。 |
自联接 |
关系的另一种类型是多对多关系。关系数据库系统通常不允许您在两个表之间实施直接的多对多关系。但可以设计数据库,通过使用第三个中间表来支持多对多关系。请参阅多对多关系。
•用于一个关系的匹配字段可以是查找目标字段,只要该查找基于不同的关系即可。
•由于无法对全局字段建立索引,因此不能将全局字段用作相关表中的匹配字段。但可以将全局字段用作当前表中的匹配字段。
•关系还使将数据分组以解决复杂搜索成为可能。例如,关系可决定当前库存层次、销售计划和其他任务,在这些情况下,有必要在多个表之间查找数据。
•在源表中使用访问权限,以限制或禁止对相关数据的访问。例如,用户必须具有查看相关匹配字段的访问权限,以查看该关系的相关字段。