表關係:表與表之間(實體)有什麼樣的關係,每種關係應該如何設計表結構。
一對一,一張表中的一條記錄與另外一張表中最多有一條明確的關係,通常,此設計方案保證兩張表中使用同樣的主鍵即可。(唯一鍵可以為null,無法匹配)
學生表:
學生id(pri)
姓名年齡
性別籍貫
婚否信仰
表的使用過程中,常用的資訊會經常去查詢,而不常用的資訊會偶爾才會用到。
解決方案:將表拆分,常見的放一張表,不常見的放一張表。
常用表學生id(pri)
姓名年齡
性別不常用表
學生id(pri)
籍貫婚否
信仰一對多,通常也叫作多對一的關係,通常一對多的關係設計的方案,在「多」關係的表中去維護乙個字段,這個欄位是「一」關係的主鍵。
母親表母親id
姓名年齡
身高m1
m2在孩子中加入一列母親id(增加字段)
孩子表孩子id
姓名年齡
身高母親id
k1m1
k2m2
多對多:一張表中的一條記錄在另外一張表中可以匹配到多條記錄,反過來也一樣。
多對多的關係如果按照多對一的關係維護中:就會出現乙個欄位中有多個其他表的主鍵,在訪問的時候就會帶來不便。
既然通過兩張表自己增加字段解決不了問題,那麼久通過第三張表來解決。
師生關係
1、乙個老師教過多個班級的 學生
2、乙個學生聽過多個老師講的課
首先得有兩個實體:老師表和學生表
從中間設計一張表,維護兩張表對應的聯絡,每一種聯絡都包含。
多對多解決方案:增加乙個中間表,讓中間表與對應的其他表形成兩個多對一的關係:多對一的解決方案是在「多」表中增加「一」表對應的主鍵字段。
mysql資料庫表關係 資料庫 表關係
上節回顧 1.建表語法 注意點 2.資料型別 今日內容 1.表之間的關係 多對一,多對多,一對一 2.複製表 分表 為什麼要分表?乙個表中 要儲存個人資訊又要儲存部門資訊 會導致大量的資料冗餘 所有資料存放在同乙個表中 將導致以下幾個問題 1.浪費空間 不致命 2.結構混亂 3.修改資料時 如果有一...
mysql關聯式資料庫 關聯式資料庫概述
為什麼需要資料庫?因為應用程式需要儲存使用者的資料,比如word需要把使用者文件儲存起來,以便下次繼續編輯或者拷貝到另一台電腦。要儲存使用者的資料,乙個最簡單的方法是把使用者資料寫入檔案。例如,要儲存乙個班級所有學生的資訊,可以向檔案中寫入乙個csv檔案 id,name,gender,score 1...
MySQL資料庫 多表關係
多個表之間是有關係的,那麼關係靠誰來維護?1.1 一對多關係 乙個表中的一天資料對應另乙個表中的多條資料,比如 客戶和訂單 乙個客戶可以有多張訂單 分類和商品 乙個種類對應多種商品 部門和員工 乙個部門裡有多名員工 建表原則 在 多 的一方 客戶 商品 員工 建立乙個字段,字段作為外來鍵指向 一 的...