【轉】資料庫一對一、一對多、多對多關係
阿新 • • 發佈:2018-11-04
轉自:https://blog.csdn.net/u013144287/article/details/79024130
本來資料庫一對一、一對多、多對多關係並不複雜,但是最近在理解的時候感覺又感覺多了寫新意,所以現在在來總結一下吧
一、首先給出三種關係的例項
1、一對一關係例項
* 一個人對應一張身份證,一張身份證對應一個人
2、一對多關係例項
* 一個班級擁有多個學生,一個學生只能夠屬於某個班級
3、多對多例項
* 一個學生可以選修多門課程,一個課程可以被多個學生選修
二、一對一關係
一對一關係是最好理解的一種關係,在資料庫建表的時候可以將人表的主鍵放置與身份證表裡面,也可以將身份證表的主鍵放置於人表裡面
三、一對多關係
方法1:班級是1端,學生是多端,結合面向物件的思想,1端是父親,多端是兒子,所以多端具有1端的屬性,也就是說多端裡面應該放置1端的主鍵,那麼學生表裡面應該放置班級表裡面的主鍵。(該方法比較常用)
方法2:新增一個關係表,用來表示學生與班級的屬於關係,該關係表包含欄位(學生號,班級號)。通過學生號與班級號的對應關係表示學生屬於的班級。
在兩張表所對應的java實體類中多的一端中有1的一端的java實體類的物件屬性。
四、多對多關係
對於多對多關係,需要轉換成1對多關係,那麼就需要一張中間表來轉換,這張中間表裡面需要存放學生表裡面的主鍵和課程表裡面的主鍵,此時學生與中間表示1對多關係,課程與中間表是1對多關係,學生與課程是多對多關係
四、總結
總而言之,最重要的關係就是1對多關係,根據面向物件思想在建表的時候將1端主鍵置於多端即可。