本文目錄一覽:
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—中間表尋找匹配記錄(多條)—學生表匹配(一條)
如何用mysql設計表
選中某個表,然後右鍵點擊,選擇「設計表」即可。
也可以左鍵點擊某個表(即選中某表),在上面輔助菜單欄里有「打開表」、「設計表」、「新建表」等按鈕可點擊,點擊「設計表」按鈕即可。
進入後,會彈出新的操作窗口,新窗口的菜單欄里有常用的修改表結構的按鈕,右鍵點擊某列字段也可以彈出相應的修改表的操作按鈕。
其它摸索着看提示操作即可,還是很簡單的。
修改好表後點擊菜單欄上的「保存」按鈕即可。
註:若要查看修改表的sql語句,必須在「保存」之前點擊「SQL預覽」按鈕。
根據如下表格內容如何設計數據庫表(Mysql)?
1、職責信息表、包含表述信息
2、工作任務表
3、職責和任務關聯中間表
這樣就做到了職責表1對多個工作表,後面不管怎麼加都是一個套路
mysql數據庫中間表如何設計?
我感覺沒有必要用中間表,每個表裏面加個用戶ID(userid),用戶登錄的時候肯定會獲取到他的userid,然後每個表裏面查一遍,就獲取了這個用戶的所以資料了!如果需求必須這樣設計的話,那一張關係表足矣!如果還是不懂,加我Q:2417037332
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/313012.html