Skip to content
Read this post in: de_DEen_USes_ESfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW
Home » Data Modeling / Database » 建立線上書店:使用ERD和DBML進行資料模型設計

建立線上書店:使用ERD和DBML進行資料模型設計

資料模型設計是建立資料庫中資料及其關係的視覺化表示的過程。資料模型設計中最常使用的工具之一是實體關係圖(ERD),它使用圖形符號來表示實體、屬性與關係。在本文中,我們將探討使用ERD進行資料模型設計的過程,並提供實際應用場景中的範例。

什麼是實體關係圖(ERD)?

ERD是實體、其屬性以及彼此之間關係的圖形化表示。實體是資料庫中所代表的物件或概念,例如客戶、訂單或產品。屬性是實體的特徵或性質,例如姓名、地址或價格。關係是實體之間的關聯,例如客戶下訂單。

ERD通常由以下元件組成:

  1. 實體:以矩形表示,實體名稱寫在內部。
  2. 屬性:以橢圓表示,並以線連接到其所屬的實體。
  3. 關係:以菱形表示,連接實體。

實體之間可能存在的三種關係類型為:

  1. 一对一(1:1):一個實體的實例與另一個實體的單一實例相關聯。
  2. 一对多(1:N):一個實體的實例與另一個實體的多個實例相關聯。
  3. 多對多(N:M):一個實體的多個實例與另一個實體的多個實例相關聯。

使用ERD進行資料模型設計的範例

讓我們考慮一個線上書店的範例,該書店向客戶銷售書籍。書店擁有許多書籍類別,以及大量可下訂單的客戶。為了使用ERD來建模此系統,我們可以從識別相關的實體、屬性和關係開始。

實體:

  1. 書籍:代表書店中的書籍。包含標題、作者、ISBN和價格等屬性。
  2. 類別:代表書店中的書籍類別或類型。包含名稱和描述等屬性。
  3. 客戶:代表已註冊書店的客戶。包含姓名、地址和電子郵件等屬性。
  4. 訂單:代表客戶下的訂單。包含訂單日期和總金額等屬性。同時也包含對客戶實體的外鍵參考,以指出是哪位客戶下訂單。
  5. 書籍-類別:代表書籍與類別之間的多對多關係。包含對書籍與類別實體的外鍵參考。
  6. 訂單-書籍:代表訂單與書籍之間的多對多關係。包含對訂單與書籍實體的外鍵參考。

關係:

  • 一本書可以屬於多個類別(多對多)。
  • 一個類別可以包含多本書(一對多)。
  • 一位客戶可以下多筆訂單(一對多)。
  • 一筆訂單可以包含多本書(多對多)。

考慮到這些實體、屬性和關係,我們可以為線上書店系統建立ERD。ERD的樣貌大致如下:

ERD for bookstore

在此ERD圖中,我們可以看到書籍實體與類別實體之間存在多對多關係,表示一本書可以屬於多個類別,而一個類別也可以包含多本書。客戶實體與訂單實體之間存在一對多關係,表示一位客戶可以下多筆訂單,但每筆訂單僅屬於一位客戶。最後,訂單實體與書籍實體之間存在多對多關係,表示一筆訂單可以包含多本書,而一本書也可以出現在多筆訂單中。

使用Visual Paradigm生成資料庫結構的SQL程式碼

表格 book {
id 整數 [主鍵,遞增]
標題 字串
作者 字串
isbn 字串
價格 浮點數
}

表格 分類 {
id 整數 [主鍵,遞增]
名稱 字串
描述 字串
}

表格 客戶 {
id 整數 [主鍵,遞增]
名稱 字串
地址 字串
電子郵件 字串
}

表格 訂單 {
id 整數 [主鍵,遞增]
訂單日期 日期時間
總金額 浮點數
客戶編號 整數 [參考:> 客戶.id]
}

表格 書籍分類 {
書籍編號 整數 [參考:> 書籍.id]
分類編號 整數 [參考:> 分類.id]
}

表格 訂單書籍 {
訂單編號 整數 [參考:> 訂單.id]
書籍編號 整數 [參考:> 書籍.id]
}

結論

使用實體關係圖(ERD)進行資料模型設計是一個重要的過程,有助於我們視覺化並理解資料庫中實體之間的關係。透過識別實體、屬性和關係,我們可以建立一個清晰且簡明的ERD,以呈現資料及其結構。這使我們能夠設計和維護高效且有效的資料庫,以支援組織的需求。

發佈留言