表與表之間的關係

2021-10-14 17:13:07 字數 1884 閱讀 8582

最近領導一直在提「表之間關聯」、「資料的身份證」之類的我聽不懂的名詞

今天就總結一下,表之間的關係

什麼是主鍵、外來鍵:

關係型資料庫中的一條記錄中有若干個屬性,若其中某乙個屬性組(注意是組)能唯一標識一條記錄,該屬性組就可以成為乙個主鍵 

比如  

學生表(學號,姓名,性別,班級) 

其中每個學生的學號是唯一的,學號就是乙個主鍵 

課程表(課程編號,課程名,學分) 

其中課程編號是唯一的,課程編號就是乙個主鍵 

成績表(學號,課程號,成績) 

成績表中單一乙個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以 學號和課程號的屬性組是乙個主鍵

成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外來鍵

同理 成績表中的課程號是課程表的外來鍵 

定義主鍵和外來鍵主要是為了維護關聯式資料庫的完整性,總結一下:

1.主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。

身份證號是唯一能確定你這個人的,其他都可能有重複,所以,身份證號是主鍵。 

2.外來鍵用於與另一張表的關聯。是能確定另一張表記錄的字段,用於保持資料的一致性。

比如,a表中的乙個字段,是b表的主鍵,那他就可以是a表的外來鍵。

現實生活中,實體與實體之間肯定是有關係的,如:學生和老師,學生和課程,部門和員工,每個人和自己的身份證號碼等。

在設計表的時候,就應該體現出來表與表之間的這種關係。

表與表之間的三種關係:

一對多(1:n)

例如:部門和員工,客戶和訂單,分類和商品。

一對多建表原則:在從表(多方)建立乙個字段,字段作為外來鍵指向主表(一方)的主鍵

多對多(m:n)

例如:老師和學生,學生和課程,使用者和角色

多對多關係建表原則:需要建立第三張表,中間表至少兩個字段,這兩個字段分別作為外來鍵指向各自一方的主鍵。

多對多關係示意圖:

一對一(1:1)

在實際開發應用不多,因為一對一可以建立成一張表。

兩種建表原則:

一對一的建表原則說明

外來鍵唯一

主表的主鍵和從表的外來鍵(唯一),形成主外來鍵關係,外來鍵唯一 unique

外來鍵是主鍵

主表的主鍵和從表的主鍵,形成主外來鍵關係

關係示意圖

表與表的關係關係的維護

一對多主外來鍵的關係

多對多中間表,兩個一對多

一對一1) 特殊一對多,從表中的外來鍵設定為唯一

2) 從表中的主鍵又是外來鍵

表與表之間的關係筆記

表與表之間的關係 一 一對多和多對多 1.一對多建表原則 1 在從表 多方 建立乙個字段,字段作為外來鍵指向一的一方的主鍵 2 例項 分類和商品,乙個分類對應多個商品,乙個商品只能屬於某乙個分類,部門和員工,乙個部門可以有多個員工,乙個員工只能屬於某乙個部門 3 alter table 從表 pro...

表與表之間的關係,修改表,複製表

外來鍵就是從來幫助我們建立表與表之間關係的 foreign key表與表只有四種關係 一對多關係 多對多關係 一對一關係 多對一關係sql語句建立表關係 1.一對多表關係 外來鍵字段建在多的一方 2.在建立表的時候 一定要先建被關聯表 3.在錄入資料的時候 也必須先錄入被關聯表 create tab...

SSH之 配置表與表之間的關係

配置多對一的關係時拿emp 員工 多表和dept 部門表 一舉例 1 在emp 中配置dept的屬性 class emp 2 在emp對映表 emp.hbm.xml中定義元素,表示參照關係 有延遲載入和非延遲載入,這關乎到sql語句執行一條還是兩條。建議使用這樣表示延遲載入並且sql語句合併。配置一...