為了讓設計時更容易溝通,常常會使用ERD來整理,ERD用圖像化的方式來規劃資料與資料之間的關係,讓開發人員可以對系統架構一目瞭然,如一對多、多對一、多對多等等常見的關係。
Outline
- ERD類別圖基本介紹
- 產品資料表
- 文章資料表
- 訂單及優惠券資料表
- 前後台使用者資料表
ERD 基本介紹
ERD 意思是 實體-關聯圖,Entity是用物件導向的class表示一個生活中的實體,關聯則是指資料庫的關聯。因為Ruby本來就是物件導向語言,而Rails又是用ORM對應資料表,所以用ERD可以很清楚的表示資料關係,
我們用一張表格表示一個Class,會長的像下面這樣:
![](https://i.imgur.com/4XYvaIh.png =230x200)
修飾子
表裡面裝的是在class裡面的property,前面使用符號來表示物件屬性的修飾子,分別是:
符號 | 屬性 |
---|---|
+ | public |
- | private |
# | protected |
關係表示
關係 | 表示 |
---|---|
一對多 | 1-------------1…* ( or * ) |
一對一 | 1-------------1 |
多對多 | 需要中介表 |
產品資料
因為可能會有想讓商品同時出現在兩個或更多個類別清單的情況,所以這邊我採用多對多關聯設計,資料表要實現多對多的話,則要藉由中間一張轉介表來串連:
文章資料
文章跟類別的就比較單純,一個類別可能有多個文章:
訂單資料
由於使用者在結帳時有可能會使用優惠券,所以Coupon跟訂單、以及訂單其他資訊之間必須有一對一關聯:
前台 / 後台 使用者
為了安全性考量,前後台的會員資料表應該要分開,如果共用同一張資料表,後台管理員有機會看到其他管理人的機密資料: