資料表關聯性類型

關聯性會在索引鍵資料行中找出相符的資料 -- 通常兩個資料表的資料行名稱是相同的。 通常關聯性會在比對某資料表的主索引鍵和另一個資料表的外部索引鍵項目,其中主索引鍵提供每個資料列唯一識別項。 例如,藉由在 titles 資料表的 title_id 資料行 (主索引鍵) 和 sales 資料表的 title_id 資料行 (外部索引鍵) 之間建立關聯性,使書籍銷售量和特定書名產生關聯。

資料表之間的關聯性共有三種類型。 關聯資料行的定義方式決定所建立的關聯性類型。

注意事項注意事項

新的資料表設計工具版本會為採用 SQL Server 2012 格式的資料庫顯示。本主題說明的舊版資料表設計工具可與採用 SQL Server 舊版格式的資料庫搭配使用。

在新版本中,您可以透過圖形介面或直接在指令碼窗格變更資料表定義。如果使用圖形介面,資料表的定義就會自動在指令碼窗格中更新。若要在指令碼窗格中套用 SQL 程式碼,請選擇 [更新] 按鈕。如需新版本的詳細資訊,請參閱如何:使用資料表設計工具建立資料庫物件

一對多關聯性

一對多關聯性 (One-To-Many Relationship) 為最常見的關聯性類型。 在此類關聯性中,A 資料表的某資料列在 B 資料表中可以擁有許多相符的資料列,但 B 資料表的某資料列在 A 資料表中只能有一個相符的資料列。 例如,publishers 和 titles 資料表即具有一對多關聯性:每個發行者都出版許多書籍,但每本書名都只能來自單一發行者。

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

一對多關聯性的主索引鍵端由索引鍵符號表示。 關聯性的外部索引鍵端則由無限大符號表示。

多對多關聯性

在多對多關聯性 (Many-To-Many Relationship) 中,A 資料表中的資料列在 B 資料表中有很多相符的資料列,反之亦然。 您可以定義第三個資料表,即聯合資料表 (Junction Table) 來建立此類關聯性,該資料表的主索引鍵是由 A 資料表和 B 資料表的外部索引鍵所組成。 例如,authors 資料表和 titles 資料表之間具有多對多關聯性,而該多對多關聯性是由這些資料表分別與 titleauthors 資料表的一對多關聯性定義而來的。 titleauthors 資料表的主索引鍵是由 au_id 資料行 (authors 資料表的主索引鍵) 和 title_id 資料行 (titles 資料表的主索引鍵) 組成的。

一對一關聯性

在一對一關聯性 (One-To-One Relationship) 中,A 資料表的某資料列在資料表 B 中僅有一個相符的資料列,反之亦然。 如果這兩個關聯資料行都是主索引鍵或具有唯一條件約束,就建立起一對一關聯性。

這一類關聯性並不常見,因為這類資訊大都位於同一個資料表中。 您可能會在下列情況使用一對一關聯性:

  • 將資料表分割為許多資料行。

  • 為了安全起見將資料表的某個部分獨立出來。

  • 儲存使用時間很短並且只要刪除資料表便可輕易刪除掉的資料。

  • 儲存僅套用於主資料表子集的資訊。

一對一關聯性的主索引鍵端以索引鍵符號表示。 外部索引鍵端也是以索引鍵符號表示。

請參閱

概念

參考完整性概觀

其他資源

使用關聯性

使用索引鍵