自學編程,想設計開發一個購物平台。商品只有一種,但是分為不同的類型,這個資料庫該怎麼設計呢?比方說書
書:
id: int
name: string
description: text
price: decimal
cover_image: string
書可以按照不同的條件來篩選,比方說按照分類,或者是按照書籍語言,發布時間,價格等等。。是設計一個category表
id: int
name: string
然後分別建立不同的category,然後讓一本書歸屬於這些不同的category呢,還是把這些資訊寫入程式碼到書資料表中
id: int
name: string
description: text
language: string
type: string
price: decimal
正確的做法應該是怎樣的呢?
回複內容:
自學編程,想設計開發一個購物平台。商品只有一種,但是分為不同的類型,這個資料庫該怎麼設計呢?比方說書
書:
id: int
name: string
description: text
price: decimal
cover_image: string
書可以按照不同的條件來篩選,比方說按照分類,或者是按照書籍語言,發布時間,價格等等。。是設計一個category表
id: int
name: string
然後分別建立不同的category,然後讓一本書歸屬於這些不同的category呢,還是把這些資訊寫入程式碼到書資料表中
id: int
name: string
description: text
language: string
type: string
price: decimal
正確的做法應該是怎樣的呢?
,請注意這只是一個可行的方案,並不是唯一解
(price單位建議用分,用int儲存,避免浮點數精度問題)
語言,或者其它雜七雜八的屬性你可以放到property屬性工作表,然後具體書是否具有哪個屬性在book_property裡面加一行記錄
分類因為展現比較頻繁,所以單獨列出,考慮一個關聯表book_category的原因是不知道是否允許一本書出現在多個分類裡面,如果一本書限死一個分類,那這個book_category可以省略,book表加一列category_id
另外,高階的搜尋和篩選功能你需要搜尋引擎,Elastic Search, Sphinx, Xunsearch,Solr等等,你用MySQL一方面效能太差另一方面SQL太複雜,稍微深入之後你可以試著接入