外键:检查 table 没有与域的键字段
Foreign key: check table has no key field with the domain
我有两个 table:ZDEPARTMENT01
和 ZEMPLOY01
。
ZDEPARTMENT01
有一个外键 DEPHEAD
,其数据元素是域 ZPERSONNEL_NO
( NUMC, 10 ) 的 ZPERSONNEL_NO
。 ZEMPLOY01
有一个主键 EMP_NUM
,其数据元素是域 ZEMP_NUM
( NUMC, 10 ) 的 ZEMP_NUM
。
ZDEPARTMENT01-DEPHEAD
是外键,ZEMPLOY01-EMP_NUM
是校验键,ZDEPARTMENT01-DEPHEAD
域ZPERSONNEL_NO
有值table:ZEMPLOY01
.
在为 ZDEPARTMENT01-DEPHEAD
设置检查 table 时,我收到错误 检查 table ZEMPLOY01 没有包含域 ZPERSONNEL_NO 的关键字段字段 DEPHEAD
即使两个域具有相同的数据类型和长度(但域不同),系统也无法识别外键 table 并检查 table 关系。
文档说:系统试图将检查table的关键字段分配给具有相同域的table的字段。这是否意味着除了数据类型和长度之外,外键 table 和检查 table 之间的域名应该相同?
如何解决这个问题?
如消息中所述,您必须调整数据元素以使用相同的域:
The check table must have a key field to which the domain of the check
field is assigned.
我对此并不完全确定,但我相信这背后的基本原理是,这将阻止您更改 table 字段定义之一而不同时更改另一个字段定义。
我认为您的问题是关键字段定义。 table 'ZEMPLOY01' 有键字段 'CARRIER' 和 'EMPNUM' 如果你想要 table 'ZDEPARTMENT01' 的外键 'DEPHEAD'工作那么你有两个选择:
更改 table 'ZEMPLOY01' 中定义的关键字段。只需将 'EMPNUM' 设置为您唯一的关键字段,然后尝试建立关系。
将字段 'CARRIER' 添加到 table 'ZDEPARTMENT01' 然后尝试建立关系。
请确认。
希望对您有所帮助。
是的,就是这个意思。您有两个数据元素:ZEMP_NUM 和 ZPERSONNEL_NO。如果您 double-click 这些,在您的 table 中,您将导航到数据元素定义。在那里您会看到分配给每个域名的 Domain。这些应该是相同的,所以使它们相同。
这样想:
域 为可以出现在多个地方的数据提供结构一致性。您不会有一个在某些地方是 10 位数字而在其他地方是 8 位数字的员工 ID,否则它会导致 10 位数字的记录得到 t运行 分类。同样,如果您 运行 的数字不足并且需要将您的员工 ID 扩展到 11 位数字,则您要确保它在每个 table 使用它的地方都已更改。 Domains 让你做到这一点。域还允许您配置默认查找关系(值 table)或可以选择的固定值(例如员工 table)。
数据元素 提供上下文相关性。您会注意到,除了提供数据元素的域之外,您还可以定义字段标签和标题,并且可以分配自定义搜索帮助。这些允许您以与当前 activity 相关的方式向用户显示字段。在这种情况下,您可以将 Employee 标记为 "Department Head",因为如果有一个用于保存部门负责人 ID 的字段并将其仅显示为 "Employee" 会造成混淆。您还可以添加搜索帮助,将员工列表限制为仅标记为 "Managers".
的员工
我有两个 table:ZDEPARTMENT01
和 ZEMPLOY01
。
ZDEPARTMENT01
有一个外键 DEPHEAD
,其数据元素是域 ZPERSONNEL_NO
( NUMC, 10 ) 的 ZPERSONNEL_NO
。 ZEMPLOY01
有一个主键 EMP_NUM
,其数据元素是域 ZEMP_NUM
( NUMC, 10 ) 的 ZEMP_NUM
。
ZDEPARTMENT01-DEPHEAD
是外键,ZEMPLOY01-EMP_NUM
是校验键,ZDEPARTMENT01-DEPHEAD
域ZPERSONNEL_NO
有值table:ZEMPLOY01
.
在为 ZDEPARTMENT01-DEPHEAD
设置检查 table 时,我收到错误 检查 table ZEMPLOY01 没有包含域 ZPERSONNEL_NO 的关键字段字段 DEPHEAD
即使两个域具有相同的数据类型和长度(但域不同),系统也无法识别外键 table 并检查 table 关系。
文档说:系统试图将检查table的关键字段分配给具有相同域的table的字段。这是否意味着除了数据类型和长度之外,外键 table 和检查 table 之间的域名应该相同?
如何解决这个问题?
如消息中所述,您必须调整数据元素以使用相同的域:
The check table must have a key field to which the domain of the check field is assigned.
我对此并不完全确定,但我相信这背后的基本原理是,这将阻止您更改 table 字段定义之一而不同时更改另一个字段定义。
我认为您的问题是关键字段定义。 table 'ZEMPLOY01' 有键字段 'CARRIER' 和 'EMPNUM' 如果你想要 table 'ZDEPARTMENT01' 的外键 'DEPHEAD'工作那么你有两个选择:
更改 table 'ZEMPLOY01' 中定义的关键字段。只需将 'EMPNUM' 设置为您唯一的关键字段,然后尝试建立关系。
将字段 'CARRIER' 添加到 table 'ZDEPARTMENT01' 然后尝试建立关系。
请确认。
希望对您有所帮助。
是的,就是这个意思。您有两个数据元素:ZEMP_NUM 和 ZPERSONNEL_NO。如果您 double-click 这些,在您的 table 中,您将导航到数据元素定义。在那里您会看到分配给每个域名的 Domain。这些应该是相同的,所以使它们相同。
这样想: 域 为可以出现在多个地方的数据提供结构一致性。您不会有一个在某些地方是 10 位数字而在其他地方是 8 位数字的员工 ID,否则它会导致 10 位数字的记录得到 t运行 分类。同样,如果您 运行 的数字不足并且需要将您的员工 ID 扩展到 11 位数字,则您要确保它在每个 table 使用它的地方都已更改。 Domains 让你做到这一点。域还允许您配置默认查找关系(值 table)或可以选择的固定值(例如员工 table)。
数据元素 提供上下文相关性。您会注意到,除了提供数据元素的域之外,您还可以定义字段标签和标题,并且可以分配自定义搜索帮助。这些允许您以与当前 activity 相关的方式向用户显示字段。在这种情况下,您可以将 Employee 标记为 "Department Head",因为如果有一个用于保存部门负责人 ID 的字段并将其仅显示为 "Employee" 会造成混淆。您还可以添加搜索帮助,将员工列表限制为仅标记为 "Managers".
的员工