DEFINE RELATION 命令
概念信息
定义两个 Analytics 表之间的关系。
说明
您可以关联多达 18 个 Analytics 表,并且访问和解析关联表中任何域组合中的数据,就如同它们位于单个表中一样。对于每对关联表,您都必须指定单独的 DEFINE RELATION 命令。
语法
DEFINE RELATION 键域 WITH 相关表名称 INDEX 索引名 <AS 关系名称>
参数
| 名称 | 描述 |
|---|---|
| 键域 |
父表中的键域。 只能为每个关系选择一个键域。 |
| WITH 相关表名称 |
关联表的名称。 |
|
INDEX 索引名 |
关联表中键域的索引的名称。 您必须首先按键域对关联表进行索引,然后才能关联该表。 |
|
AS 关系名称 可选 |
该关系的唯一名称。 默认情况下,使用子表的名称作为关系名称。如果您要定义到同一子表的附加关系,则必须指定唯一的名称。 |
示例
关联两个表
下面的示例通过使用客户编号域 (CustNum) 作为键域,将打开的表关联到 Customer 表:
DEFINE RELATION CustNum WITH Customer INDEX Customer_on_CustNum
Customer_on_CustNum 是键域上的子表索引的名称。当您关联表时,需要子表索引。
如果当您运行 DEFINE RELATION 命令时子表索引尚不存在,则会显示错误消息并且不会执行关联。
提示
如果您在 Analytics 用户界面中定义一个关系,则自动为您创建子表索引。
在关联两个表之前创建子表索引
如果需要,您可以在关联两个表之前创建子表索引。下面的示例显示如何在将 Ar 表关联到 Customer 表之前为 Customer 子表创建索引。
OPEN Customer
INDEX ON CustNum TO Customer_on_CustNum
Open Ar
DEFINE RELATION CustNum WITH Customer INDEX Customer_on_CustNum
下面的示例关联 ACL_Rockwood.ACL 样例项目中的三个表:
- Vouchers_items 父表
- Vouchers 子表
- Employees 孙子表
通过使用 Vouchers 表作为关系中的中间表,您可以将每个凭证条目与处理该条目的员工相关联。
OPEN Vouchers
INDEX ON voucher_number TO "Vouchers_on_voucher_number"
OPEN Vouchers_items
DEFINE RELATION voucher_number WITH Vouchers INDEX Vouchers_on_voucher_number
OPEN Employees
INDEX ON employee_number TO "Employees_on_employee_number"
OPEN Vouchers_items
DEFINE RELATION Vouchers.created_by WITH Employees INDEX Employees_on_employee_number
语法逻辑解释
- 打开 Vouchers 表并按 voucher_number 域对其进行索引。
- 打开 Vouchers_items 表并使用 voucher_number 作为键域将其与 Vouchers 表相关联。
- 打开 Employees 表并按 employee_number 域对其进行索引。
- 打开 Vouchers_items 表并使用 Vouchers.created_by 作为键域将其与 Employees 表相关联。
说明
Vouchers.created_by 可在第二个关系中用作键域,因为您已经在第一个关系中将 Vouchers_items 与 Vouchers 相关联。
备注
有关此命令工作方式的详细信息,请参见关联表。