當前位置:首頁 » 參考文獻 » 資料庫設計多對多

資料庫設計多對多

發布時間: 2021-03-23 12:57:32

『壹』 資料庫設計(三個屬性兩兩多對多)

三個實體的兩兩多對多如果可以合並,就可以將三個實體之間的聯系合並為一個多元聯系,具體轉換時除了三個實體轉換為三張表以外,這個多元聯系單獨轉換成一張新表,三個實體的主碼在這張新表中作為外碼
當然,如果不能合並,就只能按照多對多的規則分別將這三個聯系轉換為三張表,各自有關的兩個實體的主碼在這些新表中作外碼了

『貳』 如何在資料庫中表示多對多的關系

多對多:新建一個關系表,將兩張表關系起來。關系表中是兩張表的主鍵。內

如:有多容個學生,每個學生可以選修多門課程,每個課程可以被多個學生選修。

注意:多對多中,不能說在一個表中加個欄位,cid是另一張表的主鍵,不能寫兩個數據。

(2)資料庫設計多對多擴展閱讀

一個好的表結構設計,可以減少一些不必要的表或欄位等。數據表之間的關聯關系分為三種:一對一、一對多、多對多。

1、一對一,是將數據表「垂直切分」,就是A表的一條記錄對應B表的一條記錄。

優點:

(1)便於管理、可提高一定的查詢速度。

(2)減輕CPU的IO讀寫,提高存取效率。

(3)符合資料庫設計的三大範式。

(4)符合關系性資料庫的特性。

缺點:增加一定的復雜程度,程序中的讀寫難度加大。

2、一對多,就是A表的一條記錄,對應B表的多條記錄,且A的主鍵作為B表的外鍵。

『叄』 資料庫怎麼設計多對多的數據表

1.資料庫中的多對多關聯關系一般需採用中間表的方式處理,將多對多轉化為兩個一對多。
2.通過表的關系,來幫助我們怎樣建表,建幾張表。
一對一
一張表的一條記錄一定只能與另外一張表的一條記錄進行對應,反之亦然。

學生表:姓名,性別,年齡,身高,體重,籍貫,家庭住址,緊急聯系人
其中姓名、性別、年齡、身高,體重屬於常用數據,但是籍貫、住址和聯系人為不常用數據
如果每次查詢都是查詢所有數據,不常用的數據就會影響效率,實際又不用
常用信息表:ID(P),姓名,性別,年齡,身高,體重
不常用信息表:ID(P),籍貫,家庭住址,緊急聯系人

解決方案:將常用的和不常用的信息分享存儲,分成兩張表
不常用信息表和常用信息表,保證不常用信息表與常用信息表能夠對應上:找一個具有唯一性的
欄位來共同連接兩張表。
一個常用表中的一條記錄永遠只能在一張不常用表中匹配一條記錄,反之亦然。
一對多
一張表中有一條記錄可以對應另外一張表中的多條記錄;但是反過來,另外一張表的一條記錄
只能對應第一張表的一條記錄,這種關系就是一對多或多對一
母親與孩子的關系:母親,孩子兩個實體
母親表:ID(P),名字,年齡,性別
孩子表:ID(P),名字,年齡,性別
以上關系:一個媽媽可以在孩子表中找到多條記錄(也可能是一條),但是一個孩子只能找到一個媽媽
是一種典型的一對多的關系。
但是以上設計:解決了實體的設計表問題,但是沒有解決關系問題,孩子找不到母親,母親也找不到孩子

解決方案:在某一張表中增加一個欄位,能夠找到另外一張表中的記錄:在孩子表中增加一個欄位
指向母親表,因為孩子表的記錄只能匹配到一條母親表的記錄。
母親表:ID(P),名字,年齡,性別
孩子表:ID(P),名字,年齡,性別,母親表ID(母親表主鍵)
多對多
一對表中(A)的一條記錄能夠對應另外一張表(B)中的多條記錄;同時B表中的一條記錄
也能對應A表中的多條記錄

老師和學生
老師表 T_ID(P),姓名,性別
學生表 S_ID(P),姓名,性別
以上設計方案:實現了實體的設計,但是沒有維護實體的關系
一個老師教過多個學生,一個學生也被多個老師教過

解決方案:增加一張中間關系表
老師與學生的關系表:ID(P),T_ID,S_ID
老師表與中間表形成一對多的關系,而中間表是多表;維護了能夠唯一找到一表的關系;
同樣的學生表與中間表也是一個一對多的關系;
學生找老師:找出學生ID--->中間表尋找匹配記錄(多條)--->老師表匹配(一條)
老師找學生:找出老師ID--->中間表尋找匹配記錄(多條)--->學生表匹配(一條)

『肆』 一對一、一對多、多對多,如何設計數據表

一對一正確。

一對多和多對一是多個表 ,至少兩個表,一對多和多對一是相互的內。容

主鍵是自己定義的,一般外鍵表引用的對應的表的鍵是主鍵。

多對多三個表,有一個是關系表(中間表)。

中間表沒有普通欄位,一般只有有兩個外鍵,同時引用兩個表,多對多就出來了。

『伍』 mysql 多對多 怎麼設計表

1.資料庫中的多對多關聯關系一般需採用中間表的方式處理,將多對多轉化為兩個一對多。
2.通過表的關系,來幫助我們怎樣建表,建幾張表。
一對一
一張表的一條記錄一定只能與另外一張表的一條記錄進行對應,反之亦然。

學生表:姓名,性別,年齡,身高,體重,籍貫,家庭住址,緊急聯系人
其中姓名、性別、年齡、身高,體重屬於常用數據,但是籍貫、住址和聯系人為不常用數據
如果每次查詢都是查詢所有數據,不常用的數據就會影響效率,實際又不用
常用信息表:ID(P),姓名,性別,年齡,身高,體重
不常用信息表:ID(P),籍貫,家庭住址,緊急聯系人

解決方案:將常用的和不常用的信息分享存儲,分成兩張表
不常用信息表和常用信息表,保證不常用信息表與常用信息表能夠對應上:找一個具有唯一性的
欄位來共同連接兩張表。
一個常用表中的一條記錄永遠只能在一張不常用表中匹配一條記錄,反之亦然。
一對多
一張表中有一條記錄可以對應另外一張表中的多條記錄;但是反過來,另外一張表的一條記錄
只能對應第一張表的一條記錄,這種關系就是一對多或多對一
母親與孩子的關系:母親,孩子兩個實體
母親表:ID(P),名字,年齡,性別
孩子表:ID(P),名字,年齡,性別
以上關系:一個媽媽可以在孩子表中找到多條記錄(也可能是一條),但是一個孩子只能找到一個媽媽
是一種典型的一對多的關系。
但是以上設計:解決了實體的設計表問題,但是沒有解決關系問題,孩子找不到母親,母親也找不到孩子

解決方案:在某一張表中增加一個欄位,能夠找到另外一張表中的記錄:在孩子表中增加一個欄位
指向母親表,因為孩子表的記錄只能匹配到一條母親表的記錄。
母親表:ID(P),名字,年齡,性別
孩子表:ID(P),名字,年齡,性別,母親表ID(母親表主鍵)
多對多
一對表中(A)的一條記錄能夠對應另外一張表(B)中的多條記錄;同時B表中的一條記錄
也能對應A表中的多條記錄

老師和學生
老師表 T_ID(P),姓名,性別
學生表 S_ID(P),姓名,性別
以上設計方案:實現了實體的設計,但是沒有維護實體的關系
一個老師教過多個學生,一個學生也被多個老師教過

解決方案:增加一張中間關系表
老師與學生的關系表:ID(P),T_ID,S_ID
老師表與中間表形成一對多的關系,而中間表是多表;維護了能夠唯一找到一表的關系;
同樣的學生表與中間表也是一個一對多的關系;
學生找老師:找出學生ID--->中間表尋找匹配記錄(多條)--->老師表匹配(一條)
老師找學生:找出老師ID--->中間表尋找匹配記錄(多條)--->學生表匹配(一條)

『陸』 資料庫設計中多對多關系好還是將多對多拆成兩個一對多好(原因)

當然是多對多,多對多其實就是多個一對多

『柒』 多對多關系,應該怎麼設計資料庫中的表和欄位

select a.顧客 from a,b where a.id=b.顧客id and (d.商品='商品1' and d.商品='商品3')

『捌』 多對多關系資料庫表設計

拆分關系。增加一個表。使之符合範式。
比如做學生選課系統。多個學生選多門課。這是內多對多關系。
這樣可以寫成容三個表。
分別為。學生表(學號,姓名)
課程表(課程號,課程名)
選課表(學號,課程號)
通過選課表,將學生和課程聯系起來了。

『玖』 資料庫設計怎麼將 多對多關系 轉換成 一對多關系

一個 多對多關系 可以轉換成兩個 一對多關系
下面舉例說明:
有 學生表 與 選修課程表 多對多關系
一個學生可以選擇多門課程, 一門課程可以被多個學生選修.
需要新增加一個 學生選修課程情況表,2個欄位(學生編號, 課程編號)

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

『拾』 資料庫表與表之間多對多關系怎麼處理

拆分關系。增加一個表。使之符合範式。
比如做學生選課系統。多個學生選多門課。這是多對多關系。
這樣可以寫成三個表。
分別為。學生表(學號,姓名)
課程表(課程號,課程名)
選課表(學號,課程號)
通過選課表,將學生和課程聯系起來了。

熱點內容
塗鴉論文 發布:2021-03-31 13:04:48 瀏覽:698
手機資料庫應用 發布:2021-03-31 13:04:28 瀏覽:353
版面217 發布:2021-03-31 13:04:18 瀏覽:587
知網不查的資源 發布:2021-03-31 13:03:43 瀏覽:713
基金贖回參考 發布:2021-03-31 13:02:08 瀏覽:489
懸疑故事範文 發布:2021-03-31 13:02:07 瀏覽:87
做簡單的自我介紹範文 發布:2021-03-31 13:01:48 瀏覽:537
戰略地圖參考 發布:2021-03-31 13:01:09 瀏覽:463
收支模板 發布:2021-03-31 13:00:43 瀏覽:17
電氣學術會議 發布:2021-03-31 13:00:32 瀏覽:731