使用關聯

建立多對多關聯性

您的瀏覽器不支援視訊。請安裝 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

什麼是多對多關聯性?

多對多關聯性是最常使用的資料表關聯性,可提供各種重要資訊,例如銷售人員連絡了哪些客戶,以及客戶訂單中有哪些產品。

如果某個資料表中的一或多個項目能夠和另一個資料表中的一或多個項目具有關聯性,就會形成多對多關聯性。例如:

  • 您的訂單資料表包含多位列在客戶資料表中的客戶所建立的訂單,且一位客戶可能建立多份訂單。

  • 產品資料表包含您販售的個別產品,而這些產品也出現在訂單資料表的多份訂單中。

  • 一份訂單可能會包含特定產品的一或多個執行個體,和/或多個產品的一或多個執行個體。

例如,莊麗麗這位客戶的訂單號碼為 1012,可能包含識別碼為 12 與 15 的產品各一個,以及五個識別碼為 30 的產品。

建立多對多關聯性

多對多關聯性的建立方式,與一對一或一對多關聯性的建立方式並不相同。建立後兩種關聯性時,您只需要用一條線連結適當的欄位。但若要建立多對多關聯性,您必須建立一份新資料表以連結另外兩個資料表。這份新資料表稱為中繼資料表 (有時又稱為連結或聯合資料表)。

在前述案例中,您建立了一份訂單詳細資料資料表,當中包含訂單資料表與產品資料表內每個訂單項目識別碼的記錄。您結合兩個資料表的索引鍵建立了主索引鍵。

在我們的案例中,莊麗麗的訂單號碼為 1012,其包含了識別碼為 12、15 與 30 的產品。也就是說,訂單詳細資料項目看起來像這樣︰

訂單識別碼

產品識別碼

1012

12

1012

15

1012

30

麗麗訂了識別碼為 12 與 15 的產品各一個,以及五個識別碼為 30 的產品。由於主索引鍵是由訂單識別碼與產品識別碼結合而成,而且主索引鍵不得重複,因此我們無法新增 1012 和 30 的資料列,而必須改為在訂單詳細資料資料表中新增數量欄位。

訂單識別碼

產品識別碼

數量

1012

12

1

1012

15

1

1012

30

5

建立中繼資料表

  1. 選取 [建立] > [資料表]。

  2. 選取 [儲存] 儲存

  3. 在 [資料表名稱] 中輸入具有描述性的標題。為表明它的用途,建議您在資料表名稱當中加入「聯合」或「中繼」字詞。

在中繼資料表中建立欄位

Access 會自動新增識別碼欄位做為資料表的第一欄。請進行相關變更,讓該欄位與您多對多關聯性中第一個資料表的識別碼相符。舉例來說,如果第一個資料表是叫做「訂單識別碼」的訂單資料表,而且它的主索引鍵是一個數字,請將新資料表中的識別碼欄位名稱變更為「訂單識別碼」,並將資料類型設為 [數字]。

  1. 在 [資料工作表檢視] 中,選取 [識別碼] 欄位標題,然後輸入新的欄位名稱。

  2. 選取您剛剛重新命名的欄位。

  3. 在 [欄位] 索引標籤的 [資料類型] 底下,選取與原始資料表中欄位相符的資料類型,例如 [數字] 或 [簡短文字]。

  4. 選取 [按一下以新增],然後選取與第二個資料表的主索引鍵相符的資料類型。在已選取的欄位標題中,輸入第二個資料表的主索引鍵欄位名稱,例如 [產品識別碼]。

  5. 如果您需要追蹤有關這些記錄的任何其他資訊 (例如項目數量),請建立其他欄位。

合併主要識別碼欄位

您已為要連結的兩個資料表設定好包含資料表識別碼的欄位,接下來請根據這些識別碼,在中繼資料表中建立主索引鍵。

  1. 在 [設計檢視] 中開啟中繼資料表。

  2. 選取包含識別碼的兩個資料列 (如果您遵循先前的程序操作,那麼您要選取的就是前兩列)。

  3. 選取 [設計] > [主索引鍵]。
    索引鍵圖示會顯示在兩個識別碼欄位旁邊。

    資料表中的主索引鍵螢幕擷取畫面

連結三個資料表以建立多對多關聯性

若要完成多對多關聯性,請在每個資料表的主索引鍵欄位以及中繼資料表的對應欄位之間,建立一對多關聯性。如需相關操作步驟的詳細資訊,請參閱開始使用資料表關聯

完成後,關聯應會如下所示:

連結三個資料庫資料表的螢幕擷取畫面

想要更多資訊嗎?

開始使用資料表關聯

建立關聯

刪除關聯

Excel 訓練課程

Outlook 訓練

資料表 A 中的某個單一項目若可與資料表 B 中的多個項目關聯,就可以在資料表之間使用多對多關聯性,反之亦然。例如,一項產品可以出現在許多訂單中,而一份訂單可以包含許多產品。

在本示範中,我們將資料庫擴大為基本的訂單追蹤系統,其中包含產品和訂單資料表。

我們將了解聯合資料表和複合索引鍵的用途,並且將它們搭配我們的其他資料表使用,以建立多對多關聯性。

建立多對多關聯性的第一個步驟是建立一個新的資料表。

此資料表稱為「中繼資料表」,我們將用它來儲存與關聯性有關之其他資料表的資料。

中繼資料表也稱為「連結」或「聯合」資料表。

接下來,需要在聯合資料表與關聯性中包含的其他資料表之間,建立一組一對多關聯性。

在這當中,您需要將這些欄位都指定為聯合資料表的主索引鍵。這會成為「複合索引鍵」。

我們在 [設計檢視] 中建立聯合表格,因此我們選取 [建立]、[資料表設計]。這就是我們的新空白資料表。

現在,開啟產品和訂單資料表。

我們來看一下這兩個資料表的主索引鍵。產品資料表使用 [自動編號] 欄位,稱為 [產品識別碼]。

資料表的主索引鍵是訂單識別碼,也是一個 [自動編號] 欄位。

現在,我們回到聯合資料表,並且在其中輸入 [產品識別碼],選取 [數字],輸入 [訂單識別碼],然後再選取一次 [數字]。

現在,選取這兩個欄位。方法為,將指標指向任一個欄位的灰色方塊部分並拖曳。

兩個欄位都選取之後,從功能區中選取 [主索引鍵]。這會建立聯合資料表的複合索引鍵。

在複合索引鍵包含這兩個欄位,可確保每一筆訂單和訂單中的所有項目都可唯一識別。

按 Control S 以儲存聯合資料表,並將它命名為訂單詳細資料。

現在,我們可以建立關聯性。首先,請關閉所有開啟的資料表。選取 [資料庫工具],然後選取 [資料庫關聯圖]。

在 [設計] 索引標籤中,選取 [顯示資料表]。增加 [訂單詳細資料]、[訂單] 以及 [產品] 資料表。然後,關閉對話方塊。

排列資料表,讓 [訂單詳細資料],也就是聯合資料表,排在中間。將 [訂單識別碼] 欄位從 [訂單] 資料表拖曳到聯合資料表中。

在 [編輯關聯] 對話方塊中,選取 [強迫參考完整性],然後選取 [建立] 來建立關聯。

對 [產品識別碼] 欄位執行相同的動作。一樣選取 [強迫參考完整性] 和 [建立],這樣就完成了。

按 Control S 以儲存您的關聯圖表版面配置變更。

這樣您就使用聯合資料表和複合索引鍵與您現有的資料表,在您的 Access 資料庫中建立多對多關聯性。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×