表間的關係一對多 一對一 多對多關係是怎樣建立的?

2021-09-07 07:07:27 字數 1034 閱讀 9112

2.外來鍵可以是一對一的,乙個表的記錄只能與另乙個表的一條記錄連線,或者是一對多的,乙個表的記錄與另乙個表的多條記錄連線。

1.一對多,在多的一方建立外來鍵(外來鍵指向一的主鍵)

母親與孩子的關係:母親,孩子兩個實體

母親表:id(p),名字,年齡,性別

孩子表:id(p),名字,年齡,性別

以上關係:乙個媽媽可以在孩子表中找到多條記錄(也可能是一條),但是乙個孩子只能找到乙個媽媽

是一種典型的一對多的關係。

但是以上設計:解決了實體的設計表問題,但是沒有解決關係問題,孩子找不到母親,母親也找不到孩子

解決方案:在某一張表中增加乙個字段,能夠找到另外一張表中的記錄:在孩子表中增加乙個字段

指向母親表,因為孩子表的記錄只能匹配到一條母親表的記錄。

母親表:id(p),名字,年齡,性別

孩子表:id(p),名字,年齡,性別,母親表id(母親表主鍵)

2.多對多的關係,是通過中間表。中間表是多的一方,所以多的一方要包含指向一的一方的外來鍵。所以中間表,作為兩邊多的一方,中間表要包含兩邊的外來鍵,兩個外來鍵分別指向兩張表的主鍵。

多對多

一對表中(a)的一條記錄能夠對應另外一張表(b)中的多條記錄;同時b表中的一條記錄

也能對應a表中的多條記錄

老師和學生

老師表 t_id(p),姓名,性別

學生表 s_id(p),姓名,性別

以上設計方案:實現了實體的設計,但是沒有維護實體的關係

乙個老師教過多個學生,乙個學生也被多個老師教過

解決方案:增加一張中間關係表

老師與學生的關係表:id(p),t_id,s_id

老師表與中間表形成一對多的關係,而中間表是多表;維護了能夠唯一找到一表的關係;

同樣的學生表與中間表也是乙個一對多的關係;

學生找老師:找出學生id--->中間表尋找匹配記錄(多條)--->老師表匹配(一條)

老師找學生:找出老師id--->中間表尋找匹配記錄(多條)--->學生表匹配(一條)

MySQL關係 一對多 一對一 多對多

將實體與實體的關係,反應到最終資料庫表的設計上,將關係分為三種 一對一,一對多 多對一 和多對多,所有的關係都是表與表之間的關係 一對一 一對一 一張表的一條記錄只能與另外一條記錄進行對應,反之亦然 id p 姓名 性別 年齡 身高 婚姻狀況 籍貫 家庭位址 緊急聯絡人 體重 表設計成以上這種形式 ...

資料庫的 一對多 多對一 一對一 多對多 關係

關聯對映 一對多 多對一 存在最普遍的對映關係,簡單來講就如球員與球隊的關係 一對多 從球隊角度來說乙個球隊擁有多個球員 即為一對多 多對一 從球員角度來說多個球員屬於乙個球隊 即為多對一 資料表間一對多關係如下圖 關聯對映 一對一 一對一關係就如球隊與球隊所在位址之間的關係,一支球隊僅有乙個位址,...

資料庫的 一對多 多對一 一對一 多對多 關係

資料庫實體間有三種對應關係 一對一,一對多,多對多。一對一關係示例 乙個學生對應乙個學生檔案材料,或者每個人都有唯一的身份證編號。一對多關係示例 乙個學生只屬於乙個班,但是乙個學院有多名學生。多對多關係示例 乙個學生可以選擇多門課,一門課也有多名學生。這三種關係在資料庫中邏輯結構處理分析 1.一對多...