多對多關聯式資料庫必須有三張表嗎,多對多關聯式資料庫必須有三張表嗎

2021-03-03 23:20:23 字數 3153 閱讀 1312

1樓:蝸牛

不是的。比如學生表和選課表 就是多對多的關係 一個學生可以選3門課,一門課程可以被多個學生選。但是 只要在學生表裡有選課欄位就可以了 或者在選課表裡有 選擇它的學生欄位就可以了

2樓:du瓶邪

在關聯式資料庫中,除了一對一,一對多外,還有一個多對多關係.

前兩個關係都只需要內兩個表本容身就能表達清楚他們之間的關係,而多對多關係則需要第三張中間表來表達清楚兩張表之間的關係.

在一般情況下是由三個欄位組成:

1、中間表本身的自增主鍵,

2、兩張表各自的主鍵。

這時候命名就成為了一個問題,而採用雙下劃線就能解決這個問題。

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

3樓:長啊長就知道了

班級表(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

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

4樓:匿名使用者

單表的就不詳細說了

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

class_id(主鍵)

class_name

class_studentnumber

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

在此基礎上,再新增下表

老師班級表

teacher_id

class_id

student_id

teacher_name

teacher_***

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

5樓:super樂樂兒

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

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

6樓:匿名使用者

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

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

如何在資料庫中表示多對多的關係

7樓:匿名使用者

首先你的兩張主表欄位就是各自的欄位,對於中間表就是把那兩張主表的主鍵加上兩張主表聯絡的屬性加上即可。

8樓:匿名使用者

多對多要用兩個一對多來表示;

9樓:匿名使用者

良好的資料庫設計都是要符合第三正規化或者更加嚴格一些,所以多對多是一種比較不好的設計方案,會對系統的開發和維護造成很大困難,特別是**上,要重複的比較各個鍵值,因此都是採用引入關係表的方法,將兩個表的主鍵提取作為關係表的欄位,然後關係表中設定遊動主鍵,這樣就將多對多的關係解耦成1對多的關係

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

10樓:匿名使用者

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

比如做學

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

這樣可以寫成三個表。

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

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

選課表(學號,課程號)

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

11樓:匿名使用者

把問題具體一些

多對多也可以join 連線

有四個表他們都是多對多的關係,如何設計資料庫

12樓:司馬刀劍

a表bai,a_id,a_name,a_tel三個欄位。dub表,b_id,b_address,b_sol三個欄位。

關聯表zhi,ref_id,a_id,b_id,儲存著daoab兩表的id,

比如:a有

a0001,zhang3,139555533a0002,li4,1397788888

a0003,wang5,13655566

b有b0001,shanghai,234

b0002,shenyang,332

b0003,chongqing,123

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

比如:關聯表ref_table:

r0001,a0001,b0002

r0002,a0001,b0001

r0003,a0001,b0003

r0004,a0002,b0003

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

資料庫問題,三個實體二個多對多關係,可否只建立一張關係表?這樣會有錯麼?

13樓:匿名使用者

如果只有單位編號,這樣做是合適的,建兩張表有點過渡正規化化~

資料庫多對多關係,高手進多對多關聯式資料庫必須有三張表嗎??

1.學生一個表。id,name,num,score。學生id,名字,學號,和得分情況.主要就是這個score。因為一個學生要記錄他一個學期所有課時的表現。又不可能為每個課時單獨加欄位,所以建議採取字串記錄的方式 4,1 5,0 6,1 7,1 8,1 9,1 10,0 11,1 12,1 13,1 ...

資料庫中多對多的關係用字串,資料庫中多對多的關係用一個字串

no,千萬不要一個欄位儲存多個id,肯定會有問題的。電影表 id 演員 id 關聯電影id 這樣不就ok了。為什麼資料庫中不說多對一關係 多對一不符合二維表的設計規範,也無法滿足唯一的業務規則,所以一般之說一對多。比如一個人可以有多張銀行卡,總不能多個人用一張銀行卡吧 都是說一對多。為什麼?抓主要矛...

資料庫查詢一對多關係,只列出一條資料

select aaa.bbb.name as bbb name from table3 ccc left join table1 aaa on aaa.id ccc.table1 id left join table2 bbb on bbb.id ccc.table2 id where 1 1 應該...