分享

Java生鲜电商平台-商品数据库的设计与SQL下载(小程序/APP)

 头号码甲 2021-05-27

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

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多