表的临时关系:
可以使用工作区和表别名创建表间临时关系。临时关系导致一个表(子表)中的记录指针跟随另一个表(父表)的记录指针运动。例如,假设要建立客户(customer)表和定单(orders)表之间的关系,以便当移动客户表记录指针到特定客户时,定单表中的记录指针移动到带有相同客户编号的记录。
可以创建表间的不同关系。例如,一对多关系,可以选择父表或关系的“一”方中的一条记录并访问子表或关系的“多”方中的多条相关记录。有关可以创建的关系的更多信息,请参见 确定关系。
通常,设置有共同字段的表间临时关系使用一个关系表达式。该关系表达式通常是子表中主控索引的索引表达式。因此,当创建父表和子表索引之间的关系时,选择父表中的一条记录就只选择了子表中索引关键字匹配所选父表记录索引关键字的那些记录。
当打开表并创建关系之后,可以在“数据工作期”(Data Session)窗口中查看那些表的别名和关系。
数据库表之间的永久关系:
在数据库中创建数据库表之间的永久关系能够基于一个简单或复杂的索引表达式或是它们的索引使表发生关系,以便可以访问想要的精确记录。
不象用 SET RELATION 命令创建的临时关系,不需要在每次使用该表时重新创建永久关系。然而,永久关系不能控制表中记录指针之间的关系,因此在开发 Visual FoxPro 应用程序时,既需要用 SET RELATION 设置的临时关系也需要永久关系。更多的信息,请参见 SET RELATION 命令。
永久关系被存储在数据库(.dbc)文件中。下列各项也适用于永久关系:
它们自动被用作查询和视图设计器中的默认连接条件。更多的信息,请参见 查询和视图设计器。
在数据库设计器中它们显示为连接表索引的线。更多的信息,请参见 数据库设计器。
它们被用于存储参照完整性信息。
它们被用作数据环境中表单和报表的默认关系并出现在数据环境设计器(Data Environment Designer)中。