Java生鮮電商平臺-商品基礎業務架構設計-商品分類設計java
說明:咱們搞過電商的人均可以體會到,搞生鮮電商是最複雜的,爲何複雜呢?我總結了有如下幾個業務特性決定的:數據庫
1. 業務自己比較複雜。微信
2. 商品都是非標準化的商品。架構
3. 各類售後問題層出不窮.學習
4. 人心善變,各類變化.微信支付
好了,很少說廢話了。咱們開始聊下今天的商品分類的架構設計。編碼
名稱簡介: 商品分類也叫作商品類目。核心的意義就是把商品按照某種分類區分開,方便客戶尋找本身的商品。架構設計
要理解生鮮電商的商品分類,請先讀懂如下對話:設計
1.客戶: 你這個小白菜多少錢一斤呢?老闆code
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