資料庫表關係(單錶 一對一 一對多 多對多)

2022-09-18 03:09:38 字數 1252 閱讀 1999

寫在開頭:

一直搞不清楚資料庫表之間的關係,看了很多部落格還是有些瀰漫,沒有具體的例子輔助。所以寫了下面的內容,此文中的案例以學校為例,個人理解,可能會有諸多不妥之處,僅供參考。

什麼是主鍵?外來鍵?

1.主鍵:主鍵是表的乙個特殊字段,可以唯一地標識表中的每條資訊。比如:身份證號。乙個表中可以有乙個或多個主鍵。

作用:唯一標識、快速查詢

2.外來鍵:如果表b的乙個字段(外來鍵)依賴於表a的主鍵。則成表a為父表,表b為子表。

原則:外來鍵必須依賴於資料庫中已經存在的父表的主鍵,外來鍵可以為空

作用:建立該錶與父表的關聯關係

包括單錶、多表(一對

一、一對多、多對多)

就是一張表,所有的資料都在一張表中。

例:下面這張表,學習資訊都存在一張表中。

2.1一對一   (不常用)

a 表中的一行最多只能匹配於 b 表中的一行

應用場景:

1.單錶太大,一分為二

2.由於安全原因而隔離表的一部分

例:為了收集學生的****,又建了一張學生聯絡表,如下圖。

聯絡表(子表)中的外來鍵(學號),必須依賴於資訊表(父表)中的主鍵(學號)存在。

2.2一對多

a 表中的一行可以匹配 b 表中的多行,但是 b 表中的一行只能匹配 a 表中的一行

例:學生到校後,需要分班,下面的兩張表就產生了。乙個班有多個學生,乙個學生只能歸屬乙個班級,

2.3多對多

多對多就是兩個一對多

a 表中的一行可以匹配 b 表中的多行,反之亦然。要建立這種關係,需要定義第三個表,稱為結合表,它的主鍵由 a 表和 b 表的外來鍵組成。

例:辦級分好之後學生就該選課了。我們需要一張課程表。乙個學生可以選擇多門科,一門課也可以多名同學上。此時我們通過第三張表來對映這種關係。

課程表:     

學生分班表:

選課結果(第三張表):    

表關係 一對一,一對多,多對多

可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...

表關係 一對一,一對多,多對多

可以在資料庫圖表中的表之間建立關係,以顯示乙個表中的列與另乙個表中的列是如何相鏈結的。更好的方法是將有關出版社的資訊在單獨的表,publishers,中只儲存一次。然後可以在titles表中放置乙個引用出版社表中某項的指標。為了確保您的資料同步,可以實施titles和publishers之間的參照完...

mySQL 表關係 一對一 一對多 多對多

一對一 a中的乙個實體至多與b中的乙個實體相關聯,且b中的乙個實體也至多與a中乙個實體相關聯。1.一對一 one to one 每個實體的獨有屬性 區別於其他實體 如個人的郵箱,每個使用者的郵箱都是不同的,即使用者與郵箱之間的關係為一對一關係。使用者與購物行為,因為多個使用者都可以購物,則兩者為多對...