試試看!
關聯式資料庫的強大功能在於結合各個資料表的資料。 若要那麼做,您必須先建立資料表之間的關聯。 然後,讓 Access 開始運作以合併查詢、表單及報表中的資料。
若要查看為資料庫定義的所有現有關聯,請開啟 Access 範本,移至 [資料庫工具] 索引標籤,然後選取 [關聯]。
附註: 如果您開啟一個空白資料庫或尚未定義任何資料表關聯時,Access 會提示您新增資料表或查詢。 您必須至少有兩個資料表,才能新增關聯。 在理想的情況下,您需先建立所有資料表。 若要深入了解,請參閱使用查閱精靈建立多個關聯和使用資料庫關聯圖窗格建立關聯。
了解關聯檢視
[關聯] 檢視中的線條會指出資料表之間的關係。 在下圖中,左側資料表是父資料表。 右側資料表是子資料表。 它們之間的線條連接用來比對資料的欄位 (在此例中為 [訂單識別碼] 和 [產品識別碼])。
線條和符號說明了資料表關聯的方式︰
-
粗的連接線代表您正強迫參考完整性。 這樣很好。 它可讓您的資料保持同步。
-
在圖中,數字 1 表示在該資料表中只能有一筆相符的記錄。 在此處所示的 [訂單] 資料表中,只有一筆記錄彼此相符。
-
∞ 符號表示多筆記錄可能包含相同的識別碼。 在此處所示的 [訂單詳細資料] 資料表中,一份訂單 (以其訂單識別碼表示) 可能會出現一次以上,因為相同訂單可能包含多個產品。
資料表之間的關聯類型
資料表之間有三種關聯類型:
-
一對一。 當每個資料表中的每個項目只出現一次時。 例如,每位員工只能有一輛公司車可供使用。 如需詳細資訊,請參閱建立一對一關聯性。
-
一對多。 當一個資料表中的一個項目可以與另一個資料表中的多個項目有關聯時。 例如,每個採購單可以包含多個產品。
-
多對多。 當一個資料表中的一或多個項目可以與另一個資料表中的一或多個項目有關聯時。 例如,每個訂單可以有多個產品,而每個產品也可以出現在許多訂單上。 若要了解更多資訊,請參閱建立多對多關聯性。
一對多關聯性
在設計良好的資料庫中,資料表之間最常見的關聯性之一就是一個對多關聯性。
資料表之間的關聯性通常倚賴其中一個資料表中的主索引鍵。 還記得主索引鍵是每一筆記錄的唯一識別碼 (通常是數值)。 為了顯示兩個不同資料表中的資訊相關,您通常會使用其中一個資料表的主索引鍵來建立關聯。
例如,在此處所示的關聯中,[連絡人] 資料表中的每個人都有一個識別碼,這是主索引鍵 (以其旁邊的金鑰符號表示)。 該識別碼也出現在 [資產] 資料表的 [擁有者] 欄位中。 若要傳送電子郵件給與某個資產關聯的人員,請從 [電子郵件地址] 欄位取得值。 若要這麼做,請尋找 [資產] 資料表中 [擁有者] 欄位中的值,然後在 [連絡人] 資料表中搜尋該識別碼。 連接線一端的數字 1 及另一端的 ∞ 符號指出這是一對多關聯性,因此一個連絡人可能與多項資產有關聯。
編輯關聯
如果您要修改現有的資料庫,或已從範本建立您的資料庫,您可以編輯現有的關聯來符合您的需求。
附註: 如果您想要處理的資料表處於使用中狀態,您必須先將它們及任何使用它們的已開啟物件關閉。
-
選取 [資料庫工具] > [關聯]。
-
選取連接兩個關聯資料表的線條。
提示: 如果您沒有看到想要的關聯,請在 [設計] 索引標籤上的 [關聯] 群組中,選取 [所有關聯]。
-
在 [設計] 索引標籤上,選取 [編輯關聯]。
[資料表/查詢] 係指左側的父資料表 (在此範例中為 [客戶])。
[關聯資料表/查詢] 係指子資料表 (在此範例中為 [訂單])。
即使在「關聯」檢視中這些資料表未出現在此訂單中,它們在對話方塊中的位置仍會指出連接它們的線條方向和關聯。 舉例來說,如果是一對多關聯性,這會相當重要,因為它指出左側資料表是一 (父資料表),而右側資料表是多 (子資料表)。
-
若要變更連接資料表的欄位,請選取所示每個資料表底下的不同欄位。 在此範例中,[客戶] 資料表中的 [識別碼] 欄位會連接到 [訂單] 資料表中的 [客戶識別碼] 欄位。
-
變更 Access 同步處理資料表間資料的方式。
強迫參考完整性
若要避免無效資料,以及讓參考能夠跨資料表關聯保持同步,請選取此選項。
例如,假設 [員工] 和 [員工福利] 資料表之間有一對一關聯性。 如果某個員工離職,當您從 [員工] 資料表中將其移除時,也會一併移除 [員工福利] 資料表中該相關員工的記錄。
有時強迫參考完整性並沒有意義。 例如,假設 [貨運公司] 與 [訂單] 之間有一對多關聯性。 您刪除某個貨運公司,而該貨運公司對應 [訂單] 資料表中的訂單。 這些訂單會變成孤立項目,也就是說,它們仍然包含 [貨運公司識別碼],但識別碼已不再有效,因為它所參考的記錄已不存在。
串聯更新關聯欄位
若要確保更新所有關聯資料表中的關聯欄位資料,請選取此選項。
例如,假設您只想要變更貨運公司的識別碼。 設定此選項將可確保更新 [貨運公司識別碼] — 不只是在 [貨運公司] 資料表中,也在所有其他與其連接且包含 [貨運公司識別碼] 的資料表 (例如 [訂單] 資料表) 中。
串聯刪除關聯記錄
是否要決定選取此選項,取決於您是否需要在某些資料表中保留記錄,即使可能從其他資料表中刪除這些記錄。
例如,假設您刪除某個貨運公司。 如果選取此選項,Access 就會刪除所有資料表中參照該 [貨運公司識別碼] 的所有記錄,包括由該貨運公司運送的所有訂單 (在 [訂單] 資料表中)。 請只有在您確定想要刪除訂單歷程記錄的情況下,才選取此選項。
-
若要將資料表之間的關聯從內部聯結變更為外部聯結,請選取 [聯結類型] 按鈕。 如需詳細資訊,請參閱使用外部聯結建立查詢。
刪除資料表關聯
附註: 如果您想要處理的資料表處於使用中狀態,您必須先將它們及任何使用它們的已開啟物件關閉。
刪除資料表關聯:
-
選取 [資料庫工具] > [關聯]。
-
選取連接兩個關聯資料表的線條。
提示: 如果您沒有看到想要的關聯,請在 [設計] 索引標籤上的 [關聯] 群組中,選取 [所有關聯]。
-
選取 Delete 鍵。 如果系統提示您確認是否要刪除關聯,請選取 [是]。
附註: 當您移除關聯時,會一併移除該關聯的參考完整性支援 (如果有的話)。 因此,Access 將不會再防止會在一對多關聯性的多端導致產生孤立記錄的變更。