CodeGym /課程 /SQL SELF /建立 ERD(實體關聯圖)

建立 ERD(實體關聯圖)

SQL SELF
等級 26 , 課堂 1
開放

ERD 就是 Entity-Relationship Diagram(實體關聯圖) 的縮寫。它是一種把你的資料庫結構視覺化的方式,會顯示實體(table)之間是怎麼連結的。

想像一下,ERD 就像是資料庫的捷運地圖。每個車站就是一個 table,車站間的線路就是關聯。這張地圖能幫你搞懂怎麼在車站間移動(也就是 table 怎麼互動)。

ERD 包含:

  • 實體:就是像「學生」、「課程」、「老師」這種物件或 table。
  • 屬性:就是 table 裡的欄位,像 ID名字姓氏
  • 關聯:就是 table 之間的線,顯示關係,比如一個學生可以選很多課。

用 ERD 不只可以規劃資料庫,還能讓同事或主管一眼看懂結構。對任何開發者來說,這都是超強的工具!

ERD 的基本元素

  1. 實體

實體就像是迷你資料庫。每個實體都對應到你系統裡想管理的真實物件或概念。舉例來說:

  • 「學生」table。
  • 「課程」table。
  • 「借閱」table(在圖書館系統裡)。

範例:


+---------------+
| 學生          |
+---------------+
| ID            |
| 名字          |
| 姓氏          |
| 出生日期      |
+---------------+
  1. 屬性 屬性就是實體的獨立特徵或性質。它們在資料庫 table 裡就是欄位。例如:
  • 對「學生」table 來說,可以有 ID名字姓氏
  • 對「課程」table 來說,有 課程ID課程名稱

在 ERD 裡,這些通常寫在代表實體的長方形裡面。

實體之間的關聯

關聯就是顯示兩個實體怎麼互動。來複習一下主要的關聯型態:

  • 一對一 (1:1):比如每個學生都有一個唯一的證件。
  • 一對多 (1:N):比如一個老師可以教很多課。
  • 多對多 (M:N):比如很多學生可以選很多課。

「一對多」關聯範例:

學生 (1) <----- 已選 -----> (N) 課程

在資料庫裡實作關聯時,通常會用 外鍵

怎麼畫 ERD?

來看看一步步畫 ERD 的流程,還有圖書館的範例。

步驟 1:定義實體

你的任務是把系統拆成主要的物件。比如圖書館系統:

  • 「書籍」。
  • 「讀者」。
  • 「借閱」。

範例:

+-------------+        +--------------+         +------------+
| 書籍        |        | 讀者         |         | 借閱       |
+-------------+        +--------------+         +------------+
| ID          |        | ID           |         | ID         |
| 書名        |        | 名字         |         | 讀者       |
| 作者        |        | 姓氏         |         | 書籍       |
| ISBN        |        | 出生日期     |         | 借閱日期   |
+-------------+        +--------------+         +------------+

步驟 2:加上屬性

每個實體都要有關鍵屬性。例如:

  • 「書籍」table 要有 ID(主鍵)、書名作者ISBN
  • 「讀者」table 要有 ID名字姓氏

步驟 3:建立關聯

現在把實體間的關聯加進來:

  • 「借閱」和「書籍」有關聯(一個書可以被借很多次)。
  • 「借閱」和「讀者」有關聯(一個讀者可以借很多書)。

步驟 4:視覺化

可以用任何畫圖工具,例如:

  • draw.io
  • dbdiagram.io
  • Lucidchart
  • Microsoft Visio

圖會長這樣:

[讀者] ----(1:N)---- [借閱] ----(N:1)---- [書籍]

每個關聯都加上資料型態和說明,例如:

  • 讀者ID 在「借閱」裡要連到「讀者」table 的主鍵。

範例:網路商店的 ERD

對網路商店來說,邏輯結構會包含:

  1. 用戶(註冊客戶)。
  2. 商品
  3. 訂單

步驟 1:實體

  • 用戶用戶ID名字Email
  • 商品商品ID名稱價格
  • 訂單訂單ID用戶ID訂單日期

步驟 2:建立關聯

  • 一個用戶可以下很多訂單(1:N)。
  • 一個訂單可以包含很多商品(M:N)。

完整 ERD 圖:

[用戶] ----(1:N)---- [訂單] ----(N:M)---- [商品]

要實作多對多關聯,可以加一個中介 table:

  • 訂單內容訂單ID商品ID數量

畫 ERD 的小撇步

  • 先想清楚你想在資料庫裡看到什麼。一切都從理解你的 domain 開始。

  • 只放真的重要的屬性和實體。太細會讓人看不懂。

  • 確保所有關聯都合邏輯。如果哪個關聯怪怪的,就再檢查一次。

  • 用能幫你畫圖的工具,這樣會省超多時間跟力氣。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION