資料表關聯性類型 (Visual Database Tools)

關聯性會在索引鍵資料行中找出相符的資料;該資料行通常是兩個資料表中具有相同名稱的資料行。通常關聯性將在某資料表中找出與另一個資料表的外部索引鍵項目相符的主索引鍵,其中該主索引鍵可提供每個資料列的唯一識別碼。例如,建立 titles 資料表 (主索引鍵) title_id 資料行及 sales 資料表 (外部索引鍵) title_id 資料行之間的關聯性,將書籍銷售與特定標題相關聯。

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

  • 一對多關聯性

  • 多對多關聯性

  • 一對一關聯性

一對多關聯性

一對多關聯性 (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 中僅有一個相符的資料列,反之亦然。如果這兩個相關資料行都是主索引鍵或具有唯一條件約束,則建立一對一關聯性。

這一類關聯性並不常見,因為大部份此類型的詳細資訊都位於同一個資料表中。您可能會使用一對一關聯性:

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

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

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

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

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