關于電商網站數據庫的設計?
時間:2022-08-30 21:51:01 | 來源:網站運營
時間:2022-08-30 21:51:01 來源:網站運營
2021.02.04更新:有朋友說要看數據庫設計的源碼,我自己沒有,但是目前有兩個很牛逼的完整的開源方案,有需要的可以直接看:
xmall:
https://github.com/Exrick/xmalllitemall:
https://github.com/linlinjava/litemall============================原答案======================
這個問題的核心點在于:
不同商品類別差異很大,如何設計通用的存儲方案?
簡單來說,用數據庫去存儲所有信息,不管橫表還是縱表,都有明顯的缺陷:
橫表:同一個字段對不同商品含義不一樣,這到了后面開發(fā)和維護是很蛋疼的
縱表:一個商品的屬性分布到很多行記錄中,業(yè)務處理很麻煩,而且縱表的記錄數會非常多,性能會有問題
所以
不要嘗試只用數據庫去統(tǒng)一解決這個問題,思路擴散一些其實就簡單了:
1)公共表:提煉商品公共的信息放到數據庫,例如商品id、名稱、發(fā)布的商家、發(fā)布日期、上架狀態(tài)
2)擴展表:將變化的信息放到另外一個表,可以是數據庫表,例如電腦商品一個表、服裝一個表;也可以將信息放到MongoDB或者ElasticSearch這類文檔數據庫。
3)搜索組件:擴展表在全文搜索的時候不好實現,因此需要獨立的組件負責搜索,可以用Elastic Search或者Solr來冗余一份數據,用于搜索。