前端工程師後端之旅(5) — 資料庫關聯設計

Moojing
3 min readFeb 3, 2019

為了讓設計時更容易溝通,常常會使用ERD來整理,ERD用圖像化的方式來規劃資料與資料之間的關係,讓開發人員可以對系統架構一目瞭然,如一對多、多對一、多對多等等常見的關係。

Outline

  1. ERD類別圖基本介紹
  2. 產品資料表
  3. 文章資料表
  4. 訂單及優惠券資料表
  5. 前後台使用者資料表

ERD 基本介紹

ERD 意思是 實體-關聯圖,Entity是用物件導向的class表示一個生活中的實體,關聯則是指資料庫的關聯。因為Ruby本來就是物件導向語言,而Rails又是用ORM對應資料表,所以用ERD可以很清楚的表示資料關係,
我們用一張表格表示一個Class,會長的像下面這樣:

修飾子

表裡面裝的是在class裡面的property,前面使用符號來表示物件屬性的修飾子,分別是:

符號屬性

  • public
  • -private
  • #protected

關係表示

一對多1 — — — — — — 1…* ( or * )

一對一1 — — — — — — 1

多對多 (需要中介表)

產品資料

因為可能會有想讓商品同時出現在兩個或更多個類別清單的情況,所以這邊我採用多對多關聯設計,資料表要實現多對多的話,則要藉由中間一張轉介表來串連:

文章資料

文章跟類別的就比較單純,一個類別可能有多個文章:

訂單資料

由於使用者在結帳時有可能會使用優惠券,所以Coupon跟訂單、以及訂單其他資訊之間必須有一對一關聯:

前台 / 後台 使用者

為了安全性考量,前後台的會員資料表應該要分開,如果共用同一張資料表,後台管理員有機會看到其他管理人的機密資料:

--

--

Moojing

前端工程師、非軟體本科系的自學者、喜好爵士樂的技術人。因想更靠近產品的使用者,所以決定從原來硬體科系跨足至前端領域。不相信一輩子只做好一件事就好這種鬼話,喜歡有互動、有溫度的東西。