sql多對多關系
① sql server中的一對一、多對一、多對多關系是什麼意思
拿你的學號,和課程來說吧。你和你的學號就是一對一的關系,因為一個學生只有一個學號(當然只同一階段);
你和你的課程是一對多的關系 ,你一個人可以學很多門課程吧。課程和學生就是多對多的關系,一個學生可以學多門課程,而一門課程也會有很多名學生學習。簡單就是這么理解
② 誰能通俗易懂的跟我講下SQL多對多的關系。
幾對幾的關系只有在概念模型里有,概念模型就是E(實體)-R(關系)模型
其中多對多就是,相聯系的兩個實體,在某關系下互相一對多。
比如:選課關系裡的課程和學生。
一個 學生可以 選 多門 課程(1:N)
一門 課程也可 被 多個 學生 選(1:N)
所以 實體學生(選課關系)課程實體 就是多對多的關系(M:N)
而實體教師 (講課關系)課程實體就是一對多,你自己理解一下。
③ SQL的一對多,多對一,一對一,多對多什麼意思
1、一對多:比如說一個班級有很多學生,可是這個班級只有一個班主任。在這個班級中隨便找一個人,就會知道他們的班主任是誰;知道了這個班主任就會知道有哪幾個學生。這里班主任和學生的關系就是一對多。
2、多對一:比如說一個班級有很多學生,可是這個班級只有一個班主任。在這個班級中隨便找一個人,就會知道他們的班主任是誰;知道了這個班主任就會知道有哪幾個學生。這里學生和班主任的關系就是多對一。
3、一對一:比如說一個班級有很多學生,他們分別有不同的學號。一個學生對應一個學號,一個學號對應一個學生;通過學號能找到學生,通過學生也能得到學號,不會重復。這里學生和學號的關系就是一對一。
4、多對多:比如說一個班級有很多學生,他們有語文課、數學課、英語課等很多課。一門課有很多人上,一個人上很多門課。這里學生和課程的關系就是多對多。
④ 如何在資料庫中表示多對多的關系
多對多:新建一個關系表,將兩張表關系起來。關系表中是兩張表的主鍵。
如:有多個學生,每個學生可以選修多門課程,每個課程可以被多個學生選修。
注意:多對多中,不能說配亂在一個表中加個欄位,cid是另一張表的主鍵,不能寫兩個數據。
(4)sql多對多關系擴展閱讀
一個好的表結構設計,可以減少一些不必要的表或欄位等慧畢。數據表之間的關聯關系分為三種:一對一、一對多、多對多前賣芹。
1、一對一,是將數據表「垂直切分」,就是A表的一條記錄對應B表的一條記錄。
優點:
(1)便於管理、可提高一定的查詢速度。
(2)減輕CPU的IO讀寫,提高存取效率。
(3)符合資料庫設計的三大範式。
(4)符合關系性資料庫的特性。
缺點:增加一定的復雜程度,程序中的讀寫難度加大。
2、一對多,就是A表的一條記錄,對應B表的多條記錄,且A的主鍵作為B表的外鍵。