試試看!
什麼是多對多關聯性?
多對多關聯性是最常用的數據表關聯。 它們提供重要資訊,例如您的銷售人員已連絡哪些客戶,以及客戶訂單中有哪些產品。
如果某個資料表中的一或多個項目能夠和另一個資料表中的一或多個項目具有關聯性,就會形成多對多關聯性。 例如:
-
您的訂單資料表包含多位列在客戶資料表中的客戶所建立的訂單,且一位客戶可能建立多份訂單。
-
產品資料表包含您販售的個別產品,而這些產品也出現在訂單資料表的多份訂單中。
-
一份訂單可能會包含特定產品的一或多個執行個體,和/或多個產品的一或多個執行個體。
例如,莊麗麗這位客戶的訂單號碼為 1012,可能包含識別碼為 12 與 15 的產品各一個,以及五個識別碼為 30 的產品。
建立多對多關聯性
多對多關聯性的建立方式,與一對一或一對多關聯性的建立方式並不相同。 建立後兩種關聯性時,您只需要用一條線連結適當的欄位。 但若要建立多對多關聯性,您必須建立一份新資料表以連結另外兩個資料表。 這份新資料表稱為中繼資料表 (有時又稱為連結或聯合資料表)。
在前述案例中,您建立了一份訂單詳細資料資料表,當中包含訂單資料表與產品資料表內每個訂單項目識別碼的記錄。 您結合兩個資料表的索引鍵建立了主索引鍵。
在我們的案例中,莊麗麗的訂單號碼為 1012,其包含了識別碼為 12、15 與 30 的產品。 也就是說,訂單詳細資料項目看起來像這樣︰
訂單識別碼 |
產品識別碼 |
---|---|
1012 |
12 |
1012 |
15 |
1012 |
30 |
Elizabeth 為每個產品訂購一個 12 和 15,而產品 30 中有 5 個。 我們無法新增 1012 和 30 的另一列,因為 [訂單標識符] 和 [產品標識符] 合併後會構成主鍵,而主鍵 必須 是唯一的。 相反地,我們會將 [數量] 字段新增至 [訂單詳細數據] 數據表。
訂單識別碼 |
產品識別碼 |
數量 |
---|---|---|
1012 |
12 |
1 |
1012 |
15 |
1 |
1012 |
30 |
5 |
建立中繼資料表
-
選取 [建立] > [資料表]。
-
選 取 [儲存 ] 。
-
在 [資料表名稱] 中輸入具有描述性的標題。 為表明它的用途,建議您在資料表名稱當中加入「聯合」或「中繼」字詞。
在中繼資料表中建立欄位
做為第一個數據表數據行, Access 自動新增標識符字段。 請進行相關變更,讓該欄位與您多對多關聯性中第一個資料表的識別碼相符。 舉例來說,如果第一個資料表是叫做「訂單識別碼」的訂單資料表,而且它的主索引鍵是一個數字,請將新資料表中的識別碼欄位名稱變更為「訂單識別碼」,並將資料類型設為 [數字]。
-
在 [資料工作表檢視] 中,選取 [識別碼] 欄位標題,然後輸入新的欄位名稱。
-
選取您剛剛重新命名的欄位。
-
在 [ 數據表欄位] 索引標籤的 [ 資料類型] 底下,選取數據類型以符合原始數據表中的欄位,例如 [數位 ] 或 [ 簡短文字]。
-
選取 [按一下以新增],然後選取與第二個資料表的主索引鍵相符的資料類型。 在已選取的欄位標題中,輸入第二個資料表的主索引鍵欄位名稱,例如 [產品識別碼]。
-
如果您需要追蹤有關這些記錄的任何其他資訊 (例如項目數量),請建立其他欄位。
合併主要識別碼欄位
您已為要連結的兩個資料表設定好包含資料表識別碼的欄位,接下來請根據這些識別碼,在中繼資料表中建立主索引鍵。
-
在 [設計檢視] 中開啟中繼資料表。
-
選取包含標識碼的兩列。 (如果您遵循先前的程式,則前兩列為前兩列。)
-
選 取 [數據表設計 > 主鍵]。
按鍵圖示會顯示在兩個標識符字段旁邊。
連結三個資料表以建立多對多關聯性
若要完成多對多關聯性,請在每個資料表的主索引鍵欄位以及中繼資料表的對應欄位之間,建立一對多關聯性。 如需相關操作步驟的詳細資訊,請參閱開始使用資料表關聯。
完成後,關聯應會如下所示: