哪些字段唯一标识Oracle BRM的Account_Nameinfo_T表中的行?

时间:2013-10-02 23:57:59

标签: oracle

我正在尝试确定一组唯一标识Account_Nameinfo_T中一行的字段。 Oracle BRM不使用约束,因此我无法以这种方式确定它。有谁知道这些领域?更好的是,有没有人知道如何为BRM中的其他表确定这个?

(显然SO中没有Oracle-Brm标签)。

2 个答案:

答案 0 :(得分:2)

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时)唯一标识。

答案 1 :(得分:1)

只需在@Pavel Chernikov提供的(好的)答案中添加更多信息。

通常,BRM将类的定义存储在3个数据字典表(即DD_OBJECTS_TDD_FIELDS_TDD_OBJECTS_FIELDS_T)中,但是您应该使用开发人员中心的类浏览器来拥有方便的图形视图。

此外,BRM文档(在BRM文档-参考-数据库参考-可存储的类定义下)具有有关类定义的大量信息。

例如,我们可以看看/account类:

  • 在“ SQL映射”部分中,我们可以看到它映射到表ACCOUNT_T
  • 它有一个数组PIN_FLD_NAMEINFO映射到表ACCOUNT_NAMEINFO_T
  • 因此,ACCOUNT_NAMEINFO_T中的记录将由这对夫妇唯一标识
    1. OBJ_ID0,可以认为是POID_ID0中相应记录的ACCOUNT_T(*)的外键
    2. REC_ID,称为元素ID,用于区分ACCOUNT_NAMEINFO_T中相同记录的ACCOUNT_T中可能的多个记录
  • 文档还为我们提供了元素ID的功能含义的提示

    数组PIN_FLD_NAMEINFO:帐​​户的联系信息。该数组包含任意数量的联系人,并包含联系人类型的说明。 除计费联系人(1)和邮寄联系人(2)之外,元素ID并不重要。元素ID的3-100保留。

  • 在进一步嵌套的情况下,将使用其他元素ID,例如REC_ID2:例如,在同一数组PIN_FLD_PHONES中的数组PIN_FLD_NAMEINFO映射到表{{ 1}},其中记录将由三元组(ACCOUNT_PHONES_TOBJ_ID0REC_ID)唯一标识

(*)请注意,POID通常由4个元素组成:

  1. ID(REC_ID2
  2. 一种类型(POID_ID0
  3. 数据库编号(POID_TYPE
  4. 修订号(POID_DB

但是,对于单数据库安装以及为了便于讨论,我们可以假定ID足以在给定表中唯一地标识一条记录。