商城項目要點

最近多次被人問到項目開發的要點、難點,本身一直沒作整理,一切的偷懶都要償還:前端

 

【圖片庫管理】java

一開始把用戶上傳的圖片和管理員配置的系統級圖片放在tomcat下項目目錄下,作過的朋友都知道這樣不合理:數據庫

一、項目從新部署的時候每每形成用戶圖片覆蓋丟失;tomcat

二、作了一個自動升級代碼的程序,也要求用戶每次更新項目要首先備份圖片文件夾,不然後果嚴重,圖片丟失壓根兒沒法找回;服務器

——改進的思路:數據結構

一、專門的圖片服務器,與項目代碼分離,數據庫存儲訪問路徑,這樣也方便向分佈式圖片服務器優化;分佈式

二、圖片訪問能夠用ftp或者rest API的形式訪問;oop

三、升級自動備份、恢復,將大幅提高用戶的體驗;要容災應該設定同步數據備份同步,可是這樣要增長一套服務器成本;性能

【搜索分詞】優化

你不會還在用like吧?作搜索引擎,創建分詞索引,那麼是用lucene+hadoop仍是solr 的分佈式功能? 

Lucene是一個由java編寫的高性能、全方位的單詞搜索引擎庫。

 

【商品SKU設計】

所謂「SKU」即Stock Keeping Unit(庫存量單位),是物理上不可分割的最小存貨單元。通俗點說就是咱們常說的商品單品,是商品的最小粒度,做爲惟一標示綁定訂單。
這裏涉及到店鋪前臺用戶選擇商品規格的效果,你們想一想應該怎麼實現?

這裏,咱們設計了從「商品分類表」、「商品規格表」到「商品表」,商品表綁定規格屬性,一個商品多個規格,這張表的值,能夠理解成sku;

當數據結構設計好以後,前端的展現,這個js的級聯效果也挺有意思的,不信能夠試試!

附:什麼是SPU、SKU、ARPU? http://bbs.paidai.com/topic/34852

SPU是標準化產品單元,區分品種;SKU是庫存量單位,區分單品;商品特指與商家有關的商品,可對應多個SKU。

 

【子帳號設計與解耦】

因爲管理端能夠隨意修改tuser或者刪除tuser,形成的會員表tmember和商城用戶表shop_user找不到對應的tuserId,須要命令行清理數據庫:

/*#刪除會員表Tmember廢棄的tuser數據*/

select id, tuserId from tmember where tuserId not in (select id from tuser);

delete from tmember where tuserId  not in (select id from tuser);

/*#刪除商城用戶表shop_user廢棄的tuser數據*/

select id, t_user_id from shop_user where t_user_id not in (select id from tuser);

delete from shop_user where t_user_id  not in (select id from tuser);

——因爲起初設計的耦合,又沒有適時解耦,形成維護上的麻煩,咱們在之後的設計中應以此爲界,儘可能規避;

另外,現有的商城異常機制不完善,在找不到tuser的時候沒有拋自定義的異常,而是直接404了,給用戶體驗很糟糕;

另外一個層面也警示咱們數據庫約束要慎用,程序來控制就好;

相關文章
相關標籤/搜索