Java生鮮電商平台-商品基礎業務架構設計-商品分類設計
說明:我們搞過電商的人都可以體會到,搞生鮮電商是最復雜的,為什么復雜呢?我總結了有以下幾個業務特性決定的:
1. 業務本身比較復雜。
2. 商品都是非標准化的商品。
3. 各種售后問題層出不窮.
4. 人心善變,各種變化.
好了,不多說廢話了。我們開始聊下今天的商品分類的架構設計。
名稱簡介: 商品分類也叫做商品類目。核心的意義就是把商品按照某種分類區分開,方便客戶尋找自己的商品。
要理解生鮮電商的商品分類,請先讀懂以下對話:
1.客戶: 你這個小白菜多少錢一斤呢?老板
2.老板:2.7元一斤,10元4斤.
3.客戶:你這個小白菜是哪個產的呢?
4.老板:這個是襄陽的生產的,非常的甜,冬天下面條非常好吃,你看看,這個都是剛批發回來的,很新鮮.
5.客戶: 好的,那老板你跟我裝10斤吧。
6.老板:好的,稍等下就跟你裝。
7.老板:裝好了,請問你是支付寶還是微信支付,還是現金支付呢?
8.客戶:我用支付寶吧,我來掃你。
9.老板:好的。
10.支付寶:支付寶喊話:支付寶到賬10元。
11.老板:那你拿好,慢走。
12.客戶:好的。
業務分析:上面是很簡單的一句對話,我們從中需要理解以下幾種設計架構:
1. 從第一句話:(1.客戶: 你這個小白菜多少錢一斤呢?老板),客戶是在選購商品,是通過肉眼來選擇的,那么老板是根據分類來進行擺放的,左手邊是常見蔬菜,右手邊是土豆等其他品類的蔬菜,其中賣得好的都放在眼前.
2. 從第二句話:(2.老板:2.7元一斤,10元4斤.),這個是商品的售賣規格,同一個商品(SPU),有幾種售賣規格(SKU), 理論上買4斤是需要10.8元的,但是老板為了賣得快,吸引客戶,所以采用了滿減的促銷手段,目前就是快速的銷售自己是商品,減少庫存.
3. 從第三,四句話:(3.客戶:你這個小白菜是哪個產的呢?4.老板:這個是襄陽的生產的,非常的甜,冬天下面條非常好吃,你看看,這個都是剛批發回來的,很新鮮.)這個是問商品的產地以及品牌。
4. 從第五句話:(5.客戶: 好的,那老板你跟我裝10斤吧。),這個就是商品的下訂單的過程.
5. 從第7句話:(7.老板:裝好了,請問你是支付寶還是微信支付,還是現金支付呢?) 這個就是訂單的支付問題。
6. 從最后兩句話:(11.老板:那你拿好,慢走。12.客戶:好的。) 這個就是物流問題,是自取還是要配送.
業務總結:
根據以上分析,我們得出了以下幾個流程:
客戶選購商品--->選擇購買規格--->下訂單--->支付訂單---->配送完成--->交易完成
這個就是大家的購物流程。平常的幾句對話就可以分析出來.
業務架構:
我們業務架構需要涉及到那幾個方面的內容呢?
1. 商品分類。
2. 商品.
3. 商品的售賣規格。
4. 商品的配送
5. 商品的訂單。
6. 訂單的支付.
今天這篇博客不可能講解完所有的,那么我們就先講解分類:
1. 商品的分類設計
基礎屬性設計:分類ID,分類編碼,分類名稱,父類ID,狀態,分類排序,分類備注,分類狀態,創建時間。
CREATE TABLE `goods_category` ( `category_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵(自增ID)', `category_code` varchar(60) DEFAULT NULL COMMENT '編碼', `category_name` varchar(60) DEFAULT NULL COMMENT '名稱', `parent_id` int(11) DEFAULT NULL COMMENT '父級ID', `category_seq` int(11) DEFAULT NULL COMMENT '分類排序', `category_status` tinyint(4) DEFAULT NULL COMMENT '狀態(1在用,2停用)', `category_remarks` varchar(255) DEFAULT NULL COMMENT '分類備注', `create_time` datetime DEFAULT NULL COMMENT '創建時間', PRIMARY KEY (`category_id`) ) ENGINE=InnoDB AUTO_INCREMENT=282 DEFAULT CHARSET=utf8;
簡介說明:
1.category_id 數據庫自動增加,屬於分類的ID.
2.category_code,這個是屬於分類的編碼,比如 我們理解為一級分類為:01,目的是為了方便記憶與尋找。
3.category_seq 這個是為了方便分類的排序用的。一般用小到大排序。
4.category_status 這個是為了表示分類可用於不可用的,有些分類需要就需要打標刪除,實際的業務場景中是不會用delete 這種物理刪除的。
5.category_remarks 這個是分類的備注,備注的核心意義就是特殊性質的特別補充說明
6. create_time 這個就是常見時間。
這個表設計是否存在問題呢?
1. 分類名稱與分類編碼不可重復,需要常見唯一鍵的索引。
2. 一級別的分類,parentId默認就是0,所以需要增加默認值。
3. 分類狀態默認就是可用的,所以需要加默認值。
4. 很多數據不能為空需要加上不為空的設計,
綜合以上分析,我們最終設計出來了下面的表:
CREATE TABLE `goods_category` ( `category_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵(自增ID)', `category_code` varchar(60) NOT NULL COMMENT '編碼', `category_name` varchar(60) NOT NULL COMMENT '名稱', `parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父級ID,默認為0', `category_seq` int(11) DEFAULT '0' COMMENT '分類排序', `category_status` tinyint(4) DEFAULT '1' COMMENT '狀態(1在用,2停用)', `category_remarks` varchar(255) DEFAULT NULL COMMENT '分類備注', `create_time` datetime DEFAULT NULL COMMENT '創建時間', PRIMARY KEY (`category_id`), UNIQUE KEY `unique_code` (`category_code`), UNIQUE KEY `unique_name` (`category_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
總結:對事物的學習與架構需要在足夠了解業務的基礎上才可用設計得很好,多思考,多總結
聯系QQ:137071249
QQ群:793305035