Java生鮮電商平臺-商品數據庫的設計與SQL下載(小程序/APP)

Java生鮮電商平臺-商品數據庫的設計與SQL下載(小程序/APP)

說明:Java生鮮電商平臺中根據自己的經驗,把相關的商品數據庫分享給大家,希望對大家有用.

 

閱讀本文,你需要了解以下內容:

 

在開始之前,我們先來參考一下電商領域的一些概念。

 
商品分類

商品分類,俗稱商品類別、商品目錄,指的是爲了方便顧客分門別類查找商品,同時方便商家進行商品管理的分類方式。

虛擬分類

在原商品分類基礎上,依據商品的品牌、屬性、價格等條件篩選而形成的新分類方式,例如200—300元的商品,女性滑蓋手機等分類。

商品類型

商品類型不同於商品分類,指的是依據某一類商品的相同屬性歸納成的屬性集合,例如手機類型都有屏幕尺寸、鈴聲、網絡制式等共同的屬性;書籍類型都有出版社、作者、ISBN號等共同的屬性。

通用商品類型

系統內置的僅含有商品名、重量、銷售價格、簡介、庫存、品牌等基本屬性的一種商品類型。

商品規格

是依據顧客的購買習慣而獨立出來的一種商品的特殊屬性,例如顧客先選好了某一款襯衫,然後必須再選擇顏色和尺碼纔可以訂購,這裏的顏色和尺碼被稱爲規格。

商品關鍵詞

商品關鍵詞是商品名稱的有效補充,可以實現更多的搜索結果匹配機會,如:索尼愛立信W910i手機中設 置商品關鍵詞“索愛W910i”,則用戶搜索“索愛W910i”也可以找到這款手機。

版塊

商店前臺面頁的不同區域,例如特價商品、銷售排行榜、最新發貨清單等,商家可以在後臺的模版編輯中進行版塊設置來修改前臺表現樣式。

市場價

顧客購買商品時的參考價格,不作爲購買支付價格。

銷售價

是普通顧客在商店中購買商品的結算價格。

會員價

顧客註冊成爲商店的會員之後,購買商品所享受的價格。商家針對同一商品可以根據會員等級不同,設置不同的價格。

商品配件

是與此商品出現在同一個頁面並且可同時購買的其他商品,如:購買諾基亞N95,可同時購買手機電池、內存卡、藍牙耳機等配件。

相關商品

商家爲了促進其它商品的銷售而將其顯示在當前商品的頁面上,這些商品就叫做相關商品。

商品

在系統中,商品是一個銷售單位,在前臺表現爲一個商品詳細頁。

貨品

在系統中,貨品與商品不相同,貨品是一個庫存單位,例如“索愛W910i”是一個商品,但紅色的“索愛W910i”是一個貨品,黑色的是另一個貨品。

貨號

是貨品的唯一編號,可用於倉庫管理。

商品編號

商品的唯一編號,可用於商店前臺的商品檢索,一般使用數字編號,方便電話訂購。

標籤

是一種分組標識,可用於商品、訂單,店主可以利用標籤篩選分組,如:爲某幾個商品增加“熱賣商品”的標籤,可以通過板塊設置,讓這幾個商品顯示在前臺首頁的熱賣商品區。

SPU:即標準化產品單位,是最接近用戶認知的產品單元。比如iphone6、iphone4、小米4都是SPU。

SKU:即庫存量單位,例如有iphone6這個SPU,當用戶購買時要確定買什麼顏色的、內存多大的、支持什麼網絡等等。就用庫存單元SKU去規範它。庫存裏存在的東西是具體某種規格的,不同的顏色、版本、容量肯定有不同的價格和不同的SKU。

2、數據庫設計

電商商品有品牌、商品分類、商品類型、規格分組、規格參數、規格參數選項值、商品SPU、貨品SKU等等概念對象,我依照上面的一些設計思路,整合了這些概念,大概有如下的設計關係圖。

其中的關係看起來很多,不過總體就那麼些概念。這裏我吸納了一位仁兄說把規格和參數作爲一個表設計,用標誌字段分開的思路。

商品參數(有些人叫商品規格參數)信息如下所示,一般可以分爲分組、屬性及屬性值。這些信息不影響SKU,只是作爲商品的一些參數展示。

 

 

 

 

 


 

 

另外一些參數影響SKU的信息,可以認爲是特殊的規格參數,如下所示。

 

 

 

我們選擇不同的顏色、版本等規格,可能影響我們SKU的記錄,也就是對應的銷售價格和庫存量。

其中商品品牌、商品列表比較獨立,但是商品規格及規格值等信息設計和商品類型關聯,從而影響商品信息。

商品其實設計的概念不少,不過都是爲了使得數據更加有規律,實現更好的彈性設計。從商品管理擴展出去,還會設計到會員和積分管理相關信息,也是一個不小的設計領域,另外還有設計到訂單管理,也是一個大的體系,但是商品是其中的關鍵,也是很多管理的開始。

3、軟件界面的設計

針對商品的管理,主要就是後臺數據的管理,前端界面的展示,一般就是電商領域的商品銷售了,如可以結合小程序、公衆號、官網等方式展示商品進行銷售。

我們這裏先對商品管理的界面進行設計,其中包括了商品品牌、商品分類、商品規格分組、規格定義、規格選項及它們之間的關係等功能的處理。

按照我們的功能規劃,我們定義好以下的菜單

 

 

1)品牌管理

其中品牌管理界面如下所示。

 

 

 

品牌編輯或者新增界面如下

 

 

品牌信息相對獨立,沒有和其他模塊表之間有直接關係,那麼只需要維護他的基礎數據和相關的圖片信息即可。

2)分類管理

分類設計是一個無窮級的樹列表,一般電商商品類別分爲三類,我們可以通過左側樹列表快速定位,分類列表界面如下所示。

 

 

 

電商的類別比較多,一個個錄入肯定有點麻煩,我就弄了一個快速的批量新增處理。

 

 

 

分類直接從國美商品分類中複製過來即可,非常方便。

 

 

其中,我們可以根據商品類別的分級層次,來自動構建分級編碼,方便以後根據編碼直接定位商品分類的一級、二級、三級信息。

 

 

3)商品類型

前面介紹過了,商品類型不同於商品分類,指的是依據某一類商品的相同屬性歸納成的屬性集合,例如手機類型都有屏幕尺寸、鈴聲、網絡制式等共同的屬性;書籍類型都有出版社、作者、ISBN號等共同的屬性。

 

 

 

其實這裏商品類型和品牌有多對多的關係。

 

 

 

也和規格分組和規格參數和規格選項有相關的關係。

 

 

 

功能界面設計的時候,就需要考慮和這些表之間的關係維護,如基本信息裏面和品牌關係進行綁定。

 
4) 商品信息

商品信息,除了維護SPU信息外,還需要管理SKU和庫存信息,因此需要綜合上面很多信息進行分類,商品列表界面主要是提供快速商品的檢索和創建SKU記錄信息的入口,商品列表如下所示。

 

其中商品分類,我們可以根據數據庫記錄進行展示並選擇過濾數據。

 

商品創建及SKU記錄信息處理,我們可以引入 hooray / vue-sku-form 組件進行信息的創建,如下界面所示。

 

通過不同的商品規格,如顏色、內存等生成多個不同規格的SKU記錄,並設置對應的價格和庫存信息。

以上就是關於電商商品的一些數據庫設計和功能界面的截圖,主要就是用來理清各個電商商品的概念,以及模塊之間的關係,爲後面的會員管理、訂單管理等大領域進行基礎的處理。

四:數據庫SQL腳本:
 
     4. 1  商品基礎信息表
CREATE TABLE `goods` (
  `goods_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵(自增ID)',
  `category_id` int(11) DEFAULT NULL COMMENT '分類ID(外鍵)',
  `goods_code` varchar(32) DEFAULT NULL COMMENT '商品編碼',
  `goods_name` varchar(255) DEFAULT NULL COMMENT '商品名稱',
  `goods_as` varchar(20) DEFAULT NULL COMMENT '商品別名',
  `goods_title` varchar(64) DEFAULT NULL COMMENT '商品標題',
  `goods_barcode` varchar(64) DEFAULT NULL COMMENT '商品條形碼',
  `goods_label` varchar(1024) DEFAULT NULL COMMENT '商品標籤',
  `goods_brand_id` bigint(20) DEFAULT NULL COMMENT '商品品牌ID',
  `goods_brand` varchar(64) DEFAULT NULL COMMENT '商品品牌名稱',
  `goods_desc` varchar(255) DEFAULT NULL COMMENT '商品簡述',
  `goods_detail` varchar(4000) DEFAULT NULL COMMENT '商品描述',
  `goods_property_list` varchar(4000) DEFAULT NULL COMMENT '商品的屬性,json格式',
  `seller_id` bigint(20) DEFAULT NULL COMMENT '所屬商家(外鍵 賣家表)',
  `goods_seq` int(11) DEFAULT NULL COMMENT '商品排序',
  `goods_status` tinyint(4) DEFAULT NULL COMMENT '商品狀態  1上架 2下架',
  `goods_remark` varchar(516) DEFAULT NULL COMMENT '商品備註',
  `goods_weight` decimal(12,2) DEFAULT NULL COMMENT '商品重量',
  `goods_unit` varchar(32) DEFAULT NULL COMMENT '商品單位',
  `goods_price` decimal(12,2) DEFAULT NULL COMMENT '商品的價格',
  `goods_stock` int(11) DEFAULT NULL COMMENT '商品的庫存',
  `create_by` bigint(20) DEFAULT NULL COMMENT '創建人',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  PRIMARY KEY (`goods_id`),
  KEY `index_user_id` (`seller_id`),
  KEY `index_category_id` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品基礎信息表';

   4.2  商品品牌信息表

    

CREATE TABLE `goods_brand` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `brand_code` varchar(32) DEFAULT NULL COMMENT '品牌編碼',
  `brand_name` varchar(32) NOT NULL COMMENT '品牌名稱',
  `brand_web` varchar(64) NOT NULL COMMENT '品牌網站',
  `brand_seq` int(11) NOT NULL COMMENT '品牌序列',
  `brand_logo` varchar(128) DEFAULT NULL COMMENT '品牌logo',
  `brand_desc` varchar(64) DEFAULT NULL COMMENT '品牌描述',
  `brand_status` int(11) DEFAULT '0' COMMENT '品牌狀態,0爲可用,-1爲不可用',
  `first_word` varchar(255) DEFAULT NULL COMMENT '品牌首字母',
  `create_by` bigint(20) DEFAULT NULL COMMENT '創建人',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品品牌';

 

4.3 商品分類信息表

    

CREATE TABLE `goods_category` (
  `category_id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵(自增ID)',
  `category_code` varchar(60) DEFAULT NULL COMMENT '分類編碼',
  `category_name` varchar(60) DEFAULT NULL COMMENT '分類名稱',
  `category_desc` varchar(256) DEFAULT NULL COMMENT '分類描述',
  `parent_id` int(11) DEFAULT '0' COMMENT '父級ID',
  `category_seq` int(11) DEFAULT NULL COMMENT '分類排序',
  `category_status` tinyint(4) DEFAULT NULL COMMENT '分類狀態(1在用,2停用)',
  `category_logo` varchar(128) DEFAULT NULL COMMENT '分類圖標',
  `create_by` bigint(20) DEFAULT NULL COMMENT '創建人',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  PRIMARY KEY (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品分類';

4.4  商品類型表

      

CREATE TABLE `goods_type` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `type_code` varchar(32) DEFAULT NULL COMMENT '商品類型編碼',
  `type_name` varchar(1) NOT NULL COMMENT '商品類型名稱',
  `is_virtual` tinyint(2) DEFAULT '0' COMMENT '是否虛擬商品,0爲不是,1爲是',
  `type_desc` varchar(64) DEFAULT NULL COMMENT '商品描述',
  `type_seq` int(11) DEFAULT NULL COMMENT '商品類型排序',
  `create_by` bigint(20) DEFAULT NULL COMMENT '創建者',
  `create_time` datetime NOT NULL COMMENT '創建時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品類型';

 

4.5 商品類型屬性

   

CREATE TABLE `goods_type_property` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `goods_type_id` bigint(20) DEFAULT NULL COMMENT '商品類型',
  `status` tinyint(1) NOT NULL COMMENT '狀態,1爲可用,-1爲不可用',
  `sequence` int(11) NOT NULL COMMENT '序列',
  `property_name` varchar(255) DEFAULT NULL COMMENT '屬性名稱',
  `property_value` varchar(255) DEFAULT NULL COMMENT '屬性值',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='商品類型屬性';

4.6 商品規格表

    

CREATE TABLE `goods_spec` (
  `spec_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '規格ID,自動增加ID',
  `spec_name` varchar(255) DEFAULT NULL COMMENT '規格名稱',
  `spec_status` bit(1) NOT NULL COMMENT '規格狀態,1爲可用,-1爲不可用',
  `spec_seq` int(11) NOT NULL COMMENT '規格排序',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  PRIMARY KEY (`spec_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='商品規格表';

4.7 商品規格值表

     

CREATE TABLE `goods_spec_value` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `spec_id` bigint(20) DEFAULT NULL COMMENT '商品規格id',
  `spec_value` varchar(255) DEFAULT NULL COMMENT '值',
  `spec_value_status` tinyint(1) NOT NULL COMMENT '是否刪除狀態',
  `spec_value_seq` int(11) NOT NULL COMMENT '序列',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  PRIMARY KEY (`id`),
  KEY `FK1F5139F574A287A3` (`spec_id`)
) ENGINE=InnoDB AUTO_INCREMENT=32778 DEFAULT CHARSET=utf8 COMMENT='商品規格值表';

 

4.8  商品SKU表,即貨品表

     

CREATE TABLE `goods_sku` (
  `goods_sku_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自動增加ID',
  `goods_id` bigint(20) DEFAULT NULL COMMENT '商品ID',
  `goods_specs` varchar(255) DEFAULT NULL COMMENT '貨品規格組合,json格式',
  `goods_sku_seq` int(11) DEFAULT NULL COMMENT '貨品排序',
  `goods_sku_stock` int(11) DEFAULT NULL COMMENT '貨品庫存',
  `goods_sku_price` decimal(12,2) DEFAULT NULL COMMENT '貨品價格',
  `goods_sku_status` tinyint(4) DEFAULT '1' COMMENT '商品SKU的狀態,1爲可用,0爲不可用',
  `create_by` bigint(20) DEFAULT NULL COMMENT '創建人',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  PRIMARY KEY (`goods_sku_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品SKU信息表,即貨品表';

 

結語

覆盤與總結.

  總結:

          做Java生鮮電商平臺的互聯網應用,無論是生鮮小程序還是APP,商品系統設計的思路是非常重要的,本文只是起一個拋磚引玉的作用,

         希望用生鮮小程序的搭建商品基礎的架構思路實戰經驗告訴大家一些實際的項目經驗,希望對大家有用.

 QQ:137071249

共同學習QQ羣:793305035

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章