如果要設計一個會有不同屬性以及組合的資料庫,比如衣服會有顏色、尺寸,再依據某顏色有多少尺寸去訂定價格跟庫存的話,可以參考本篇文章介紹。
如果每個產品的屬性組合都不一樣,例如不同產品有不同的屬性集合,那麼你可以考慮使用一個更動態的方式來處理產品屬性。這樣,你可以避免為每個產品都創建一個獨立的屬性表,而是使用動態屬性和值的方式來表示不同的屬性組合。
產品資料表(Products)
產品ID | 產品名稱 | 描述 |
---|---|---|
1 | T恤 | 簡約T恤 |
2 | 褲子 | 休閒褲 |
3 | 鞋子 | 運動鞋 |
屬性表(Arrtibutes)
屬性ID | 屬性名稱 |
---|---|
1 | 顏色 |
2 | 尺寸 |
3 | 材質 |
屬性值表(Attribute Value)
屬性值ID | 屬性值名稱 |
---|---|
1 | 紅色 |
2 | 藍色 |
3 | 綠色 |
4 | S |
5 | M |
6 | L |
7 | 棉 |
8 | 皮革 |
產品-屬性映射表(Product-Attribute Mapping)
這個表用於關聯產品和它們的屬性。
映射ID | 產品ID | 屬性值ID |
---|---|---|
1 | 1 | 1 |
2 | 1 | 2 |
3 | 1 | 7 |
4 | 2 | 2 |
5 | 2 | 8 |
6 | 3 | 3 |
7 | 3 | 6 |
8 | 3 | 7 |
價格和庫存表(Price and Inventory)
這個表用於設定不同屬性組合的價格和庫存。
ID | 產品ID | 屬性值ID_顏色 | 屬性值ID_尺寸 | 屬性值ID_材質 | 價格 | 庫存數量 |
---|---|---|---|---|---|---|
1 | 1 | 1 | 2 | 7 | 20 | 50 |
2 | 1 | 2 | 4 | 7 | 22 | 60 |
3 | 1 | 1 | 5 | 7 | 25 | 40 |
4 | 2 | 1 | 2 | 8 | 30 | 70 |
5 | 2 | 2 | 4 | 8 | 32 | 65 |
6 | 2 | 1 | 5 | 8 | 35 | 75 |
7 | 3 | 3 | 6 | 7 | 50 | 80 |
這個資料庫結構允許你為每個產品的不同屬性組合設定價格和庫存數量。每行的價格和庫存數量都與特定的屬性組合相關聯。例如,你可以通過查詢價格和庫存表來找到紅色、S尺寸、棉材質的T恤的價格和庫存數量。
這個資料庫設計可讓你有效地管理不同屬性組合的價格和庫存數據,並確保與產品的各種變數相關聯。