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

2021-03-19 18:22:14 字數 4039 閱讀 6741

1樓:手機使用者

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

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

這樣可以寫成三個表。

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

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

選課表(學號,課程號)

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

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

2樓:匿名使用者

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

比如做學

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

這樣可以寫成三個表。

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

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

選課表(學號,課程號)

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

3樓:匿名使用者

把問題具體一些

多對多也可以join 連線

資料庫表 多對多的關係怎麼建啊?

4樓:匿名使用者

a表,a_id,a_name,a_tel三個欄位。

b表,b_id,b_address,b_sol三個欄位。

關聯表,ref_id,a_id,b_id,儲存著ab兩表的id,比如:a有

a0001,zhang3,139555533a0002,li4,1397788888

a0003,wang5,13655566

b有 b0001,shanghai,234b0002,shenyang,332

b0003,chongqing,123

如果想要ab表多對多的話,只需要將關聯表進行增加即可,而ab兩表基本資料不變,

比如:關聯表ref_table:

r0001,a0001,b0002

r0002,a0001,b0001

r0003,a0001,b0003

r0004,a0002,b0003

通過聯合查詢,就可以得到多對多的資料了,而且不破壞基本資料表。

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

5樓:匿名使用者

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

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

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

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

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

6樓:匿名使用者

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

資料庫表設計,一張表和多張表有關係,並且是多對多關係 200

7樓:長啊長就知道了

班級表(class): id,class_name學生表(student):id,student_name,class_id

老師表(teacher):id,name

成績表(score):id,kecheng_id,stu_id,score

課程表(kecheng):id,kecheng_name老師班級表(teacher_class):id,class_id,teacher_id

表關聯設計思想:

1-1,外來鍵放在那個表都可以,一般放在改動小的1-n,n-1,吧1的id放在n的裡面

n-n,需要第三張表來存放兩者id

班級-學生:1-n

班級-老師:n-n

另外現在幾乎不使用實體外來鍵,而採用邏輯外來鍵,方便修改

8樓:匿名使用者

單表的就不詳細說了

列舉一個吧,就比如班級表

class_id(主鍵)

class_name

class_studentnumber

//老師表和學生表也是一樣

在此基礎上,再新增下表

老師班級表

teacher_id

class_id

student_id

teacher_name

teacher_***

其中主鍵為:teacher_id和class_id雙主鍵,就可以實現多對多關係

9樓:super樂樂兒

設計雞毛。你就告訴你們老師。 你想查幾個表,想要什麼樣的結果,我給你寫sql!!!!!

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

10樓:匿名使用者

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

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

這樣可以寫成三個表:

學生表(學號,姓名)

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

選課表(學號,課程號)

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

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樓:瓜田

例如:學生的資料庫,一個老師教一個班 學生表裡面有個教師id欄位,這個欄位和老師表的教師id欄位就是多對一的關係,反過來就是一對多的關係, access:在有這兩個表的資料庫中,點選工具欄上的關係按鈕,把老師表的教師id欄位拖拽到學生表的教...

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

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

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

多對多關係要新建一個表,用來存放關係,有使用者id 和書id 就是哪個使用者收藏了哪本書,變成2個一對多關係 不太明白你想怎麼變成一對多的關係 你先建立個向量矩陣,把關係理清吧 資料庫設計怎麼將 多對多關係 轉換成 一對多關係 一個 多對多關係 可以轉換成兩個 一對多關係下面舉例說明 有 學生表 與...

資料庫為什麼要建立表間關係,資料庫建立表間關聯有什麼作用

建立關係,是因為這兩個實體之間本來就存在關係。就像 學生 必須有一個自己的 班級 老師 必須有 課程 這些實體之間本來就存在關聯,為了在查詢資料庫時候,能跟據一個表的資料查詢到另一個表的資料,比如我知道這個學生的編號,我就可以查詢該學生所在的班級,但是這是兩個獨立的表,要是能夠建立關係,就需要把班級...