Sun Java System Directory Server Enterprise Edition 6.0 管理指南

定義 JDBC 表格之間的關係

在最簡單的案例中,JDBC 物件類別僅包含單一 (主要) 表格。由於沒有輔助表格,因此無須定義表格之間的關係。

如果物件類別包含多個表格,必須清楚地定義這些表格之間的關係。表格之間的關係一律定義於輔助表格上。輔助表格的下列特性可讓您定義這些關係:

以下範例說明如何根據前兩個特性的值定義篩選連結規則。這些範例假設物件類別具有一個主要表格與一個輔助表格。


範例 24–1 is-single-row-table:truecontains-shared-entries:true

這是這些特性的預設值。在本例中,主要與輔助表格之間的關係為 n->1,亦即主要表格中有 n 列參照輔助表格某一共用列。

關聯式資料庫中,在主要表格中定義外來鍵 (FK),並指向輔助表格的某欄。

例如,在某個機構中,有數名員工與同一位經理共事。將定義兩個關聯式資料庫表格,具有如下結構:


primary table : EMPLOYEE [ID, NAME, FK_MANAGER_ID]
secondary table : MANAGER  [ID, NAME]

定義下列物件類別與屬性:


object-class : employee
attr : name (from primary EMPLOYEE.NAME)
attr : manager (from secondary MANAGER.NAME)

在輔助表格中定義下列篩選連結規則:


"${ID}=${EMPLOYEE.FK_MANAGER_ID}"

在此配置下,LDAP 作業的運作方式如下:



範例 24–2 is-single-row-table:truecontains-shared-entries:false

在本例中,主要與輔助表格之間的關係為 1->11<-1,亦即主要表格中有一列參照輔助表格中某一列。

在關聯式資料庫中,可能會在主要表格或輔助表格中定義外來鍵 (FK) 。

例如,在某個機構中,員工的 UID 儲存在一個表格中,而員工的姓氏則儲存在輔助表格中。將定義兩個關聯式資料庫表格,具有如下結構:


primary table : UID [ID, VALUE, FK_SN_ID]
secondary table : SN [ID, VALUE]

定義下列物件類別與屬性:


object-class : employee
attr : uid (from primary UID.VALUE)
attr : sn (from secondary ID.VALUE)

在輔助表格中定義下列篩選連結規則:


"${ID}=${UID.FK_SN_ID}"

此配置可能相反,外來鍵 FK_UID_ID 儲存在輔助表格中,並指向 UID.ID



範例 24–3 is-single-row-table:falsecontains-shared-entries:false

在本例中,主要與輔助表格之間的關係為 1->n,亦即輔助表格有 n 列參照主要表格某一列。此範例說明多值屬性案例。多值屬性在輔助表格中以列集合表示,每個屬性值一列。

關聯式資料庫中,在輔助表格中定義外來鍵,並指向主要表格的某欄。

例如,在某個機構中,每位員工具有數個電話號碼。將定義兩個關聯式資料庫表格,具有如下結構:


primary table : EMPLOYEE [ID, NAME]
secondary table : PHONE [ID, VALUE, USER_ID]

定義下列物件類別與屬性:


object-class : employee
attr : cn (from primary EMPLOYEE.NAME)
attr : telephoneNumber (from secondary PHONE.VALUE)

在輔助表格中定義下列篩選連結規則:


"${USER_ID}=${EMPLOYEE.ID}"


範例 24–4 is-single-row-table:falsecontains-shared-entries:true

目錄代理伺服器目前不支援此案例。