當前位置:編程學習大全網 - 編程語言 - 數據庫怎麽設計多對多的數據表

數據庫怎麽設計多對多的數據表

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--->中間表尋找匹配記錄(多條)--->學生表匹配(壹條)

  • 上一篇:APIHook?
  • 下一篇:微信的小程序是怎麽開發的?
  • copyright 2024編程學習大全網