ACC2000: 定義在 Microsoft Access 資料庫中資料表之間的關聯性

文章翻譯 文章翻譯
文章編號: 304467 - 檢視此文章適用的產品。
初學者: 需要知識的使用者介面在單一使用者電腦上。

本文只適用於 Microsoft Access 資料庫 (.mdb)。

全部展開 | 全部摺疊

在此頁中

結論

本文說明如何在 Microsoft Access 資料庫中定義的關聯性。它包含下列主題:
  • 什麼是資料表的關聯性
  • 資料表的關聯性的型別
    • 若要從一對多關聯性
    • 多對多關聯性
    • 一對一關聯性

  • 如何定義資料表之間的關聯性
    • 如何定義一個一對多或一對一關聯性
    • 如何定義多對多關聯性

  • 參考完整性
  • 串接式更新和刪除
  • 聯結類型

其他相關資訊

什麼是資料表的關聯性

在關聯式資料庫中的關聯性可讓您避免多餘的資料。比方說如果您要設計資料庫,將追蹤有關書的資訊,可能會建立名為標題的資料表來存放每本書如本書的資訊?? s 標題、 發行物,和發行者的日期。也是您可能想要儲存出版商出版商的電話號碼、 地址,及郵遞區號資訊。如果您要將此資訊全部儲存在標題資料表,發行者? 印刷 s 電話號碼都會重複的每一本書,其出版。

更好的解決方案是儲存在不同的資料表 [發行者的發行者資訊一次。您接著會參考發行者資料表中的項目,書名資料表中放入指標。

若要確定您的資料不是同步的您可以執行書名及發行者資料表之間參考完整性。參考完整性的關聯性可協助您確保在一個資料表的資訊符合在另一個的資訊。比方說書名資料表中的每個標題必須與發行者資料表中的特定發行者相關聯。標題不能新增到資料庫,並不存在於資料庫的發行者。

資料表的關聯性的型別

關聯性的運作是藉由比對索引鍵資料行通常有兩個資料表中相同名稱的資料行的資料。在大多數情況下關聯性會符合提供其他資料表中外部索引鍵項目具有每個資料列的唯一識別項的一個資料表中主索引鍵。比方說銷售額可與相關聯之特定著作計算銷售量銷售資料表 (外部索引鍵) 中建立書名資料表 (主索引鍵) 中的 title_id 資料行和 title_id 資料行之間的關聯。

有三個資料表之間的關聯性的類型。所建立的關聯類型取決於如何定義相關的資料行。

若要從一對多關聯性

一對多關聯性是最常見的關聯性類型。在此類關聯性中的資料列表 A 可以擁有許多相符的資料列在資料表 B,但資料表 B 中的資料列可以有只有一個相符的資料列在資料表 A。發行者和書名資料表有一對多關聯性的例如: 每個出版商產生許多標題,但是每個標題是來自只有一個發行者。

如果僅有一個相關的資料行是主索引鍵或具有唯一的條件約束,被建立一個對多關聯性。

在 Access 中,主索引鍵一方的一對多關聯性是由索引鍵符號表示。關聯性的外部索引鍵端是由無限大符號表示。

多對多關聯性

在多對多關聯性資料表 A 中的資料列可以在資料表 B,擁有許多相符的資料列,反之亦然。您) 建立此類關聯性藉由定義第三份資料表稱作連接資料表的主索引鍵包含的外部索引鍵資料表 A 和資料表 B。比方說 Authors 資料表] 和 [書名資料表有 [多對多關聯,它由從這些資料表到 TitleAuthors 資料表是一對多關聯性定義]。TitleAuthors 資料表的主索引鍵是 au_id 資料行的組合 (authors 資料表? s 主索引鍵) 和 title_id 資料行 (書名資料表? s 主索引鍵)。

一對一關聯性

在一對一關聯性資料表 A 中的資料列可以在資料表 B 中, 有多個相符的資料列,反之亦然。如果兩個相關的資料行都是主索引鍵或具有唯一條件約束,則建立一對一的關聯。

關聯性的這個型別不是常見的因為這種方式與相關的資訊大部份都在一個資料表。您可能會使用一對一關聯性:
  • 分割具有許多資料行的資料表。
  • 隔離基於安全性的資料表的一部份。
  • 儲存的是短暫,並且可以輕鬆地刪除只要刪除資料表的資料。
  • 儲存只適用於主資料表子集的資訊。
在 Access 中,主索引鍵一方的一對一關係是由索引鍵符號表示。外部索引鍵端也是由索引鍵符號表示。

如何定義資料表之間的關聯性

當您建立資料表間的關聯性時,相關的欄位不必有相同的名稱。不過,相關的欄位必須要有相同的資料型別除非主索引鍵欄位是自動編號欄位。只有如果兩者相符的欄位的 [欄位大小] 屬性是相同,就可以相符數字] 欄位的自動編號欄位。比方說如果這兩個欄位的 [欄位大小] 屬性是 [長整數] 時,自動編號] 和 [數字欄位您可以相符。甚至當二者相符欄位是數字欄位時,它們必須有相同的 [欄位大小] 屬性設定值。

如何定義一個一對多或一對一關聯性

若要建立一個到一對多或一對一關聯請依照下列步驟執行:
  1. 關閉任何已開啟的資料表。您無法建立或修改已開啟的資料表之間的關聯。
  2. 請按 F11 鍵切換到 [資料庫] 視窗。
  3. 按一下 [工具] 功能表 關聯性
  4. 如果您尚未尚未定義任何關聯性資料庫中,會自動顯示 [顯示資料表] 對話方塊。如果想新增資料表,您想要關聯,但不是顯示 [顯示資料表] 對話方塊按一下 [資料庫關聯圖] 功能表上的 [顯示資料表]。
  5. 連按兩下想要關聯,資料表名稱,然後關閉 [顯示資料表] 對話方塊。若要建立資料表和本身之間的關聯性,新增該資料表兩次。
  6. 將您想要從一個資料表關聯到其他資料表中相關的欄位] 欄位。以拖曳多個欄位,請按住 CTRL 鍵、 按一下每個欄位然後將它們拖曳。

    在大多數情況下您可以拖曳主索引鍵欄位 (以粗體文字顯示) 從一個資料表 (通常與相同的名稱) 的類似欄位在其他資料表稱為外部索引鍵。
  7. 顯示 [編輯關聯] 對話方塊。請確定兩個資料行中顯示的欄位名稱是正確的。如有必要,您可以變更它們。

    如有必要,請設定關聯選項。如果您需要 編輯關聯] 對話方塊中的特定項目的詳細資訊,按一下 [問號] 按鈕,然後按一下 [項目。這些選項將在本文稍後進行解釋。
  8. 按一下 [建立],以建立關聯性。
  9. 對每一對想要關聯的資料表重複步驟 5 到 8。

    當您關閉 [編輯關聯] 對話方塊時,Microsoft Access 會詢問您是否儲存版面配置。是否儲存版面配置或不,您建立的關係會儲存在資料庫中。

    注意: 您可以在查詢和資料表建立關聯。不過,參考完整性是不使用查詢來執行。

如何定義多對多關聯性

若要建立多對多關聯性,請依照下列步驟執行:
  1. 建立兩個有多對多關聯的資料表。
  2. 建立第三個資料表稱作連接資料表,然後從其他兩個資料表新增至聯合資料表新欄位,與主索引鍵欄位相同的定義。在聯合] 資料表主索引鍵欄位作用同外部索引鍵。如同在任何其他表格,您可以新增其他欄位到連接] 資料表。
  3. 連接點] 表格中設定 [主索引鍵為有包含其他兩個資料表中的主索引鍵欄位]。比方說 TitleAuthors 聯合資料表中主索引鍵會由組成訂單編號及產品編號] 欄位。

    注意: 若要建立主索引鍵,請依照下列步驟執行:
    1. 在 [設計] 檢視中開啟資料表。
    2. 選取欄位或您想要定義為主索引鍵的欄位。若要選取 [一個欄位按一下所要的欄位資料列選取器。

      若要選取 [多個欄位按住 [CTRL] 鍵,並再按一下 [資料列選取器,每個欄位]。
    3. 按一下工具列上的 [主索引鍵]。

      注意:視多重欄位主索引鍵中的欄位順序不同資料表中的欄位順序從按一下 [以顯示 [索引] 對話方塊然後記錄稱為 PrimaryKey 的索引的欄位名稱工具列上的 [索引]。
  4. 定義兩個主資料表和聯合資料表之間的一對多關聯。

參考完整性

參考完整性是一個規則系統,Microsoft Access 會使用來確保相關資料表中的資料錄之間的關聯性都是有效的並且確保不會無意刪除或變更相關的資料。當下列條件全部符合時,您可以設定參考完整性:
  • 從主資料表吻合的欄位是主索引鍵,或具有唯一的索引。
  • 相關的欄位都有相同的資料型別。有兩個例外狀況。自動編號欄位可以相關與 [欄位大小] 屬性設定為長整數的數字欄位,並與 [欄位大小] 屬性設定值的複製編號自動編號欄位相關數字] 欄位與 [欄位大小] 屬性設定值的複製編號]。
  • 這兩個資料表屬於相同的 Microsoft Access 資料庫中。如果資料表是連結的資料表,它們必須是 Microsoft Access 格式中的資料表,而且您必須開啟要設定參考完整性儲存的資料庫。無法強制執行其他格式的資料庫中的連結資料表的參考完整性。
當您使用參考完整性時,就會套用下列規則:

  • 您無法在相關資料表不存在主資料表的主索引鍵中的外部索引鍵欄位中輸入值。但是,您可以輸入 Null 值在外部索引鍵之中指定這些記錄之間並沒有關聯。比方說您不能將指派給不存在的客戶的訂單,但是您可以有在 [客戶編號] 欄位中輸入 Null 值指派給任何人的訂單。
  • 如果相關的資料表中存在相符的記錄,您無法從主資料表刪除一筆記錄。比方說您無法刪除員工記錄從 [員工] 資料表,如果沒有指定給 [訂貨主檔] 資料表中員工的訂單。
  • 如果該記錄有相關的記錄,您無法變更主資料表中的主索引鍵值。比方說您無法變更在 [員工] 資料表中的一個員工識別碼如果沒有指派給該員工在訂單資料表中的訂單。

串接式更新和刪除

針對參考完整性強制的關聯中,您可以指定是否想要 Microsoft Access 自動串接式更新或串接式刪除相關的記錄。如果您設定這些選項會刪除,並更新會通常無法由參考完整性規則所允許的作業。當您刪除資料錄,或變更主資料表中的主索引鍵值時,Microsoft Access 以保持參照完整性的關聯資料表會有必要的變更。

如果您按一下以選取 串接式更新相關欄位] 核取方塊,當您定義的關聯性,每次您變更主資料表中資料錄的主索引鍵 Microsoft Access 會自動更新主索引鍵中所有相關記錄新的值。比方說如果您變更在客戶資料表中的客戶的編號,[訂貨主檔] 資料表中的 [客戶編號] 欄位會自動更新為每一客戶的訂單,使關聯性都不中斷。Microsoft Access 重疊顯示更新,但不顯示任何訊息。

注意:若主資料表中的主索引鍵是 AutoNumber 資料類型欄位,選取 [串接式更新相關欄位] 核取方塊會有任何作用因為您無法變更自動編號欄位中的值。

如果選取 [重疊顯示刪除相關記錄] 核取方塊] 當您定義的關聯性,不管何時刪除主資料表中的記錄 Microsoft Access 會自動刪除相關的記錄。比方說如果從 [客戶] 資料表中刪除客戶紀錄所有客戶的訂單會自動刪除 [訂貨主檔] 資料表 (這包括資料錄與訂單記錄相關的 [訂單明細] 資料表中)。當您可以選取 [重疊顯示刪除相關記錄] 核取方塊從表單或資料工作表中刪除記錄時,Microsoft Access 會警告您相關的記錄也可能會被刪除。不過,當您刪除使用刪除查詢資料錄,Microsoft Access 都會自動刪除相關的資料表中的記錄而不會顯示一則警告。

聯結類型

有三種的聯結類型如下:

選項 1 定義內部結合。內部聯結是其中兩個資料表記錄結合在查詢的結果在聯結欄位符合指定的準則時,才聯結。在一個查詢中預設聯結會是選取的記錄,在聯結欄位的值相符時,才使用內部聯結。

選項 2 定義左外部聯結。 左外部聯結是聯結在所有記錄的查詢的 SQL 陳述式中 LEFT JOIN 作業將左邊會都新增至查詢的結果即使從右邊資料表的聯結欄位有相符的值。

選項 3 定義右外部聯結。右外部聯結為聯結中所有來自查詢的 SQL 陳述式中 RIGHT JOIN 作業將右邊的記錄都新增到查詢的結果即使從左側資料表聯結欄位沒有相符值也是。

?考

如需關於在 Access 中的關聯性的詳細資訊,按一下 「 建立和設計資料表 」 主題,在 Microsoft Access 2000 說明網頁在下列 Microsoft 網站上:
Microsoft Access 2000 Help
如需有關在 Access 中的關聯性的詳細資訊,請按一下 [說明] 功能表上的 [Microsoft Access 說明,並在 「 Office 小幫手 」 或 「 解答精靈 」 中輸入 建立或修改資料庫關聯圖 然後按一下 [搜尋] 以檢視所傳回的主題。

屬性

文章編號: 304467 - 上次校閱: 2004年6月29日 - 版次: 2.1
這篇文章中的資訊適用於:
  • Microsoft Access 2000 Standard Edition
關鍵字:?
kbmt kbhowto KB304467 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:304467
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com