MySQL資料庫8(十一)表關係

2022-08-31 13:42:10 字數 956 閱讀 3915

表關係:表與表之間(實體)有什麼樣的關係,每種關係應該如何設計表結構。

一對一,一張表中的一條記錄與另外一張表中最多有一條明確的關係,通常,此設計方案保證兩張表中使用同樣的主鍵即可。(唯一鍵可以為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 一對多關係 乙個表中的一天資料對應另乙個表中的多條資料,比如 客戶和訂單 乙個客戶可以有多張訂單 分類和商品 乙個種類對應多種商品 部門和員工 乙個部門裡有多名員工 建表原則 在 多 的一方 客戶 商品 員工 建立乙個字段,字段作為外來鍵指向 一 的...