我正在尝试确定一组唯一标识 Account_Nameinfo_T 中的行的字段。Oracle BRM 不使用任何约束,因此我无法以这种方式确定它。有人知道这些领域吗?更好的是,有谁知道我如何为 BRM 中的其他表确定这一点?
(显然SO中没有Oracle-Brm标签)。
我正在尝试确定一组唯一标识 Account_Nameinfo_T 中的行的字段。Oracle BRM 不使用任何约束,因此我无法以这种方式确定它。有人知道这些领域吗?更好的是,有谁知道我如何为 BRM 中的其他表确定这一点?
(显然SO中没有Oracle-Brm标签)。
OBJ_ID0 和 REC_ID 的组合是唯一标识 ACCOUNT_NAMEINFO_T 表中的行。
此表的 REC_ID 通常为 1 或 2(我相信 1 是 BILLING,2 是 SERVICE)。
Oracle BRM 中的主要表(如 ACCOUNT_T、EVENT_T、CONFIG_T)由 POID_ID0 唯一标识。
所有子表都由 OBJ_ID0(当表映射到 PIN_FLD_SUBSTRUCT)或 OBJ_ID0 和 REC_ID 的组合(当表映射到 PIN_FLD_ARRAY)唯一标识。
只是为@Pavel Chernikov 提供的(好的)答案添加更多信息。
通常,BRM 将类的定义存储在 3 个数据字典表(即DD_OBJECTS_T
和DD_FIELDS_T
)中,DD_OBJECTS_FIELDS_T
但您应该使用开发人员中心的类浏览器来获得方便的图形视图。
此外,BRM 文档(在 BRM 文档 - 参考 - 数据库参考 - 可存储类定义下)包含有关类定义的大量信息。
例如我们可以看一下这个/account
类:
ACCOUNT_T
PIN_FLD_NAMEINFO
它有一个映射到表的数组ACCOUNT_NAMEINFO_T
ACCOUNT_NAMEINFO_T
将由这对夫妇唯一标识
OBJ_ID0
, 可以认为是POID_ID0
对应记录的 (*) 的外键ACCOUNT_T
REC_ID
,称为元素ID,用于区分ACCOUNT_NAMEINFO_T
同一记录中可能的多条记录ACCOUNT_T
array
PIN_FLD_NAMEINFO
:帐户的联系信息。该数组包含任意数量的联系人以及联系人类型的描述。除了帐单联系人 (1) 和邮寄联系人 (2) 之外,元素 ID 并不重要。element-id 的 3-100 是保留的。
REC_ID2
:例如,数组PIN_FLD_PHONES
,在同一个数组PIN_FLD_NAMEINFO
中,映射到表ACCOUNT_PHONES_T
,其中一条记录将由三元组 ( OBJ_ID0
, REC_ID
, REC_ID2
)唯一标识(*) 请注意,一般来说,一个 POID 由 4 个元素组成:
POID_ID0
)POID_TYPE
)POID_DB
)POID_REV
)但是,对于单数据库安装并且为了讨论,我们可以假设 ID 足以唯一标识给定表中的记录。