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