mysql表的一對一 一對多 多對多聯絡

2021-09-07 07:06:22 字數 1428 閱讀 5823

1.資料庫中的多對多關聯關係一般需採用中間表的方式處理,將多對多轉化為兩個一對多。

2.通過表的關係,來幫助我們怎樣建表,建幾張表。

一對一

一張表的一條記錄一定只能與另外一張表的一條記錄進行對應,反之亦然。

學生表:姓名,性別,年齡,身高,體重,籍貫,家庭住址,緊急聯絡人

其中姓名、性別、年齡、身高,體重屬於常用資料,但是籍貫、住址和聯絡人為不常用資料

如果每次查詢都是查詢所有資料,不常用的資料就會影響效率,實際又不用

常用資訊表:id(p),姓名,性別,年齡,身高,體重

不常用資訊表:id(p),籍貫,家庭住址,緊急聯絡人

解決方案:將常用的和不常用的資訊分享儲存,分成兩張表

不常用資訊表和常用資訊表,保證不常用資訊表與常用資訊表能夠對應上:找乙個具有唯一性的

欄位來共同連線兩張表。

乙個常用表中的一條記錄永遠只能在一張不常用表中匹配一條記錄,反之亦然。

一對多		

一張表中有一條記錄可以對應另外一張表中的多條記錄;但是反過來,另外一張表的一條記錄

只能對應第一張表的一條記錄,這種關係就是一對多或多對一

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

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

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

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

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

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

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

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

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

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

多對多

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

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

老師和學生

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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