如何把資料庫表的多對多關係變成一對多關係

2021-04-26 06:13:55 字數 3235 閱讀 1550

1樓:匿名使用者

多對多關係要新建一個表,用來存放關係,有使用者id 和書id 就是哪個使用者收藏了哪本書,

變成2個一對多關係 不太明白你想怎麼變成一對多的關係

2樓:匿名使用者

你先建立個向量矩陣,把關係理清吧

資料庫設計怎麼將 多對多關係 轉換成 一對多關係

3樓:匿名使用者

一個 多對多關係 可以轉換成兩個 一對多關係下面舉例說明:

有 學生表 與 選修課程表 多對多關係

一個學生可以選擇多門課程, 一門課程可以被多個學生選修.

需要新增加一個 學生選修課程情況表,2個欄位(學生編號, 課程編號)然後 學生表 與 學生選修課程情況表 為 一對多關係.

選修課程表 與 學生選修課程情況表 為 一對多關係.

4樓:匿名使用者

增加中間表進行對映,具體看實際業務了

資料庫表與表之間多對多關係怎麼處理?

5樓:匿名使用者

拆分關係。增加一個表。使之符合正規化。

比如做學

生選課系統。多個學生選多門課。這是多對多關係。

這樣可以寫成三個表。

分別為。學生表(學號,姓名)

課程表(課程號,課程名)

選課表(學號,課程號)

通過選課表,將學生和課程聯絡起來了。

6樓:匿名使用者

把問題具體一些

多對多也可以join 連線

資料庫表的多對多關係 怎麼消除?

7樓:匿名使用者

糾正一抄下,多對多本身就是一種資料庫類

bai型,談不du上消除的。

如:一個老師可以有zhi多個學生,一個學生可dao以有多個老師,這是沒法消除的;

如果想消除不比要多對多關係,如一個學生只能有一個學號,而一個學號只能屬於一個學生,那麼可以確定唯一性,就可以把學號作為此資料庫表的主鍵來進行維護,此情況下就能確保唯一性。

備註:只要資料庫設計合理,出現多對多也不是什麼奇怪的事,所以不用太糾結。

8樓:匿名使用者

直接刪除之間的關聯約束不就好了嗎??

9樓:滿天海晨星

多對bai多關係一般是轉化為一對多關係來du實現,也zhi就是在設計資料庫的dao時候將多對多關係的兩內個表中容間再引入一個關係表,有時候稱之為聯絡實體。然後將參照完整性分別是實在多對多關係的兩個表與聯絡實體表上,查詢的時候進行條件連線即可,這是化解多對多關係正規方法。還有一種就是

實際應用過程中不去引用參照完整性原則,因為參照完整性原則會在一定程度上給開發照成難度,估計這也是xiaozhuimeng這個網友建議的初衷所在。總的來說還是看開發者的使用習慣或者是開發團隊的應用習慣。

10樓:隨o天

那要看錶的具體結構。一般採用拆表,但有些表必須是多對多的關係。

資料庫如何建立表間一對多關係

資料庫中怎樣將多對多的關係轉為一對多的關係?

sql多對多關係的兩表如何聯合查詢出所有的結果?

11樓:城春許木深

1、語句如下:

select project.*, [contract].* from project

left join contract_project on project.projectid = contract_project.projectid

left join [contract] on contract_project.contractid = [contract].contractid

注:contract在sql server中是關鍵字,因此使用了中括號。

2、使用left join

left join是以左表為準的。換句話說,左表(project)的記錄將會全部表示出來,而右表(contract_project)只會顯示符合搜尋條件的記錄

(例子中為: project.projectid = contract_project.

projectid)。對於contract表來說,contract_project表是它的左表。

此例以兩個left join 將三個表按條件聯接在一起。

擴充套件資料

連線通常可以在select語句的from子句或where子句中建立,其語法格式為:

select colunm_name1,colunm_name2

from table_name1

left join table_name2

on table_name1.colunmname=table_name2.colunmname

其中join_table指出參與連線操作的表名,連線可以對同一個表操作,也可以對多表操作,對同一個表操作的連線稱為自連線, join_type 為連線型別,可以是left join 或者right join 或者inner join 。

on (join_condition)用來指連線條件,它由被連線表中的列和比較運算子、邏輯運算子等構成。

12樓:匿名使用者

通過contract_project做中間表就行:

select *

from contract_project aleft join project b on a.projectid = b.projectid

left join contract c on a.contractid = c.contractid

前提是contract_project要大而全,包含所有的pid和cid,不然不行

13樓:匿名使用者

看的頭暈啊,呵呵,難的想

資料庫表與表之間多對多關係怎麼處理?

14樓:手機使用者

拆分關係。增加一個表。使之符合正規化。

比如做學生選課系統。多個學生選多門課。這是多對多關係。

這樣可以寫成三個表。

分別為。學生表(學號,姓名)

課程表(課程號,課程名)

選課表(學號,課程號)

通過選課表,將學生和課程聯絡起來了。

一對多關係的資料庫該怎麼建立?

資料庫表與表之間多對多關係怎麼處理

拆分關係。增加一個表。使之符合正規化。比如做學生選課系統。多個學生選多門課。這是多對多關係。這樣可以寫成三個表。分別為。學生表 學號,姓名 課程表 課程號,課程名 選課表 學號,課程號 通過選課表,將學生和課程聯絡起來了。資料庫表與表之間多對多關係怎麼處理?拆分關係。增加一個表。使之符合正規化。比如...

資料庫如何建立表間一對多關係,資料庫表與表之間多對多關係怎麼處理?

mysql裡面有如下的表 user id username photo id name photo favour 收藏關係表 photo id user id 假設這幾個表都相當大,需要進行分表。我的分表規則是 資料庫表與表之間多對多關係怎麼處理?拆分關係。增加一個表。使之符合正規化。比如做學生選課...

關聯式資料庫的表具有什麼性質,簡述資料庫關係的性質?

日常生活中,寫在紙上的 什麼樣子,資料庫裡的表也就是那個樣子 抽象 簡述資料庫關係的性質?1對11對0.1對1.常用的。當然,你排列組合,還有很多方式。關係中不允許出現相同的元組 關係中元組的順序 即行序 可任意 關係中屬性的順序可任意 同一屬性名下的各個屬性值必須來自同一個域,必須是同一型別的資料...