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.常用的。當然,你排列組合,還有很多方式。關係中不允許出現相同的元組 關係中元組的順序 即行序 可任意 關係中屬性的順序可任意 同一屬性名下的各個屬性值必須來自同一個域,必須是同一型別的資料...