简介

商品模块是电商系统核心模块,本文主要讲解商品模块功能需求、术语概念、功能设计、数据结构、相关功能设计思路。

近几年开发了很多电商类系统,将我们一些设计经验整理并分享给大家。

需求分析

电商系统后台可以管理商品(功能需求);管理商品包括添加、修改、上下架、删除、审核等动作(操作行为);添加修改商品时,每种商品有不同的字段、参数、图片、规格、价格(字段属性);术语概念

SPU:Standard Product Unit(标准化产品单元),一种商品,各种规格集合,如:iPhone 12;SKU:Stock Keeping Unit(库存量单位),也称单品,一种商品的具体规格,如:一部 黑色 128G 的iPhone 12 手机,黑色 + 128G 就是商品的具体规格。可以看到一种商品SPU包含多种SKU,SPU(SKU1、SKU2……SKU n),且SKU唯一。

功能设计

商品模块一般包括商品、商品分类、商品规格管理,可能还有商品审核。商品模块比较复杂的地方在于商品参数、规格管理。

关于商品参数

商品参数仅用于商品信息展示,一般不参与实际业务逻辑;手机参数关注点是内存、存储、摄像头、CPU等;手表参数关注点是表盘材质、表镜材质、适用人群、是否防水;化妆品参数关注点是功能、肤质、产地;如果是全品类平台,不同行业商品存在不同参数,我们可以按行业构建参数模板。如果是垂直行业,如农产品、五金等,可以将商品参数直接存储商品表,存储商品表的问题在于如果参数比较多,那么商品表参数字段会很多,如果跨行业,冗余字段会比较多,但单表维护比较方便。前期建议不过渡设计,直接单表维护,后期需要可以再拆表,并将原商品表参数字段迁移到子表。

关于商品规格

商品规格管理是商品模块比较重要的部分,一般有单规格、多规格。如果将系统商品规格设计成单规格,后期如果有多规格需求,系统扩展会比较麻烦,所以建议将系统设计成多规格方式或支持单规格、多规格两种方式。如果为了快速验证业务,项目很大程度上需要重写,行业类目需要,可以考虑用单规格方式以降低开发成本。

什么是单规格 以农产品大米为例,如果将大米按重量分成 2.5kg / 5kg,规格相对简单,只有一个层级;

什么是多规格 以服装为例,如T恤,有颜色(黑、白、黄、绿……),有尺寸(S、M、L……)、材质(棉、涤纶),规格有多个层级,比较复杂;

数据结构

多规格字段数量具有不确定性,可采用JSON实现,如服装类商品; 规格-颜色(黑、白、红、黄、蓝);规格-大小(S、M、L); * 规格-材质(纯棉、涤纶);

通过规格配置表、规格值表,两表可以完成规格数据存储,我们以最简单的基础字段作分析。

proudcts 商品表

product_attrs 商品规格配置表

product_attr_vals 商品规格值表

我们以商品iPhone 12为例,分析具体数据存储

products 商品表

product_attrs 商品规格配置表

product_attr_vals 商品规格值表

如果觉得 2 表维护繁琐,可以将 product_attrs 表冗余至 products 表字段,但products表存储会增大;对于属性值存储类型,有些喜欢用text / varchar存储,Mysql 5.7及以上支持JSON类型,可以考虑直接采用JSON存储;价格字段采用了int类型,也可以采用decimal类型,int类型可以降低精度计算问题;(微信支付采用整型,支付宝采用浮点型)如果不想用JSON存储,可以将规格属性映射成数字,如给具体的颜色、尺寸、款式属性标记成1、2、3(唯一)……通过数字组合产生对应SKU,那么上面 product_attr_vals 商品规格值表变成如下,但这种方式在DB层的数据可读性比较差。

其它商品字段参考

merchant_id 供应商IDshop_id 店铺IDshare_title 分享标题,用于微信分享share_descrip 分享描述category_id 商品分类IDunit 单位vip_amount 会员价market_amount 市场价max_amount / min_amount 最大/最小价格content 图文详情logo 商品图orderby 排序status 状态(上架、下架)stock 总库存(展示用)sale 销售量(还可以细分真实、虚拟)is_delete 是否删除(逻辑删除)check_stats 审核状态admin_id 操作员相关功能

商品费用

商品除了售价,还包括一部分费用,是集成在商城系统还是交给ERP系统处理,看具体系统规模和使用场景,商品的价格在零售价背后其实还包括采购价、包装费、运费、仓管费、订单处理费、税费、推广费,这些费用都是商品的成本,如果忽略这些成本,那么商品售卖的时候可能会产生负利润,也就是亏本。所以考虑商品的隐性费用成本很重要。

组合商品

TODO...建表SQL

CREATE TABLE products( id INT NOT NULL AUTO_INCREMENT COMMENT '主键' , name VARCHAR(30) COMMENT '商品名称' , title VARCHAR(50) COMMENT '商品标题' , share_title VARCHAR(50) COMMENT '分享标题' , share_descip VARCHAR(50) COMMENT '分享描述' , shop_id INT NOT NULL DEFAULT 0 COMMENT '店铺ID' , mch_id INT NOT NULL DEFAULT 0 COMMENT '供应商ID' , category_id INT COMMENT '商品分类' , unit VARCHAR(15) COMMENT '单位' , sale_amount INT NOT NULL DEFAULT 0 COMMENT '零售价' , vip_amount INT NOT NULL DEFAULT 0 COMMENT '会员价' , marker_amount INT NOT NULL DEFAULT 0 COMMENT '市场价' , max_amount INT NOT NULL DEFAULT 0 COMMENT '最高价' , min_amount INT NOT NULL DEFAULT 0 COMMENT '最低价' , content TEXT COMMENT '商品详情' , logo VARCHAR(150) COMMENT '商品LOGO' , orderby MEDIUMINT(5) NOT NULL DEFAULT 99 COMMENT '排序' , status TINYINT(2) NOT NULL DEFAULT 0 COMMENT '状态' , stock INT NOT NULL DEFAULT 0 COMMENT '库存' , sale INT NOT NULL DEFAULT 0 COMMENT '销量' , is_delete TINYINT(2) NOT NULL DEFAULT 0 COMMENT '是否删除' , check_status TINYINT(2) NOT NULL DEFAULT 0 COMMENT '审核状态' , shipping_template_id INT NOT NULL DEFAULT 0 COMMENT '运费模板ID' , admin_id INT NOT NULL DEFAULT 0 COMMENT '操作员' , created_at DATETIME COMMENT '创建时间' , updated_at DATETIME COMMENT '更新时间' , PRIMARY KEY (id)) COMMENT = '商品表';CREATE TABLE product_attrs( id INT NOT NULL AUTO_INCREMENT COMMENT '主键' , name VARCHAR(30) COMMENT '规格名' , product_id INT NOT NULL DEFAULT 0 COMMENT '商品ID' , values JSON COMMENT '规格配置项' , created_at VARCHAR(30) COMMENT '创建时间' , updated_at VARCHAR(30) COMMENT '更新时间' , PRIMARY KEY (id)) COMMENT = '商品规格配置表';CREATE TABLE product_attr_vals( id INT NOT NULL AUTO_INCREMENT COMMENT '主键' , product_id INT NOT NULL DEFAULT 0 COMMENT '商品ID' , attr_vals JSON COMMENT '规格配置项组合值' , sale_amount INT NOT NULL DEFAULT 0 COMMENT '零售价' , vip_amount INT NOT NULL DEFAULT 0 COMMENT '会员价' , market_amount INT NOT NULL DEFAULT 0 COMMENT '市场价' , stock INT NOT NULL DEFAULT 0 COMMENT '库存' , sale INT NOT NULL DEFAULT 0 COMMENT '销量' , thumb VARCHAR(150) COMMENT '预览图' , orderby MEDIUMINT(5) NOT NULL DEFAULT 99 COMMENT '排序' , created_at DATETIME COMMENT '创建时间' , updated_at DATETIME COMMENT '更新时间' , PRIMARY KEY (id)) COMMENT = '商品规格值表';

mysql商品规格设计_如何设计电商系统商品模块-规格相关推荐

  1. 电商系统商品中心产品设计

    由于商业性质决定了电商业务支撑系统必须具备稳定性.可扩展.安全性强等特点,PM在设计产品架构时,应充分考虑到业务发展需要,尽量将各模块隔离,商品模块建个商品中心,订单模块建个订单中心. 只有在产品设计 ...

  2. 数商云B2B电商系统商品管理功能剖析,助力家用电器企业业务提效

    如今,传统家用电器企业的发展空间不断受到电商渠道的积压,由于许多家电企业缺乏数字化的管理工具,导致管理低效,还很容易产生存货积压.供不应求等问题.随着家用电器市场需求疲软.竞争日趋白热化,家用电器企业 ...

  3. 电商系统-商品规格与销售属性的研究及数据库设计

    摘要:在电商系统中,商品规格与销售属性往往是一类较为复杂的数据结构,不仅仅在于数据的查询存储上,还在于数据库中的属性数据的查询.与Java Bean的转换等.本文将从属性数据的展示为起点,数据库的设计 ...

  4. Java电商系统商品详情页存储方案设计

    先考虑好两个 1 核心问题 1.1 并发 不管什么电商系统,商品详情页一定是整个系统中日均访问次数最高的页面之一.不难理解,用户购物,看商品详情不一定买,一定会看好多商品详情页货比三家.如果在设计存储 ...

  5. 商品规格js_品优购电商系统开发 第3章 规格及模板管理

    课程目标 目标1:理解和运用angularJS的service 目标2:理解和运用控制器继承 目标3:掌握代码生成器的使用 目标4:实现规格管理 目标5:实现模板管理 1.前端分层开发 1.1 需求分 ...

  6. 【技术改造】电商系统用户模块集成Feign-1

    @FeignClient("foodie-user-service") @RequestMapping("user-api") public interface ...

  7. 【技术改造】电商系统用户模块集成Feign-2

    # Ribbon全局配置 ribbon:ConnectTimeout: 1000ReadTimeout: 3000 # Ribbon指定服务配置超时判定,优先级更高 foodie-user-servi ...

  8. 电商系统中的商品模型的分析与设计—续

    在<电商系统中的商品模型的分析与设计>中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问.我也对此做一些研究,再次简单的对商品模型做一个介绍. 从SPU ...

  9. (附源码)springboot电商系统前端界面设计与浏览器兼容性研究 毕业设计 231058

    基于springboot电商系统前端界面设计 摘  要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于电商系统前端界面设计与浏览器兼容性研究当然也不能排除 ...

最新文章

  1. matlab错误:Variable 'a' cannot be saved to a MAT-file whose version is older than 7.3.
  2. AAAI 2022 | 北航提出基于特征纯化的视线估计算法,让机器更好地“看见”
  3. Java文件操作:文件夹中搜索文件
  4. linux远程调用的脚本在ssh时报错,linux:ssh远程调用tomcat脚本时候出错
  5. mysql 事务 select_mysql 多个select需要放入一个事务吗?
  6. HDOJ 1160 FatMouse's Speed
  7. 【Linux】ubuntu 16 启动拨号上网
  8. 启用文件系统缓存,提高Tuxera NTFS运作性能
  9. 返回顶部 模仿天猫的返回顶部代码 HTML JQuery CSS JavaScript
  10. 现代浏览器:WebM 格式/网络视频的广泛应用
  11. html特殊符号对照表
  12. oracle投毒漏洞检测,Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
  13. 满足国六标准通用型故障诊断仪:Q-OBD
  14. IM即时通讯综合消息系统的架构
  15. mug网络用语_日常聊天常见网络用语(Daily chat common Internet slang).doc
  16. POJ 3692 Kindergarten(最大团)
  17. css3 - 图标元素动画效果4 - 动画延迟
  18. 愿有岁月可回首,更敬年少一杯酒
  19. EA绘制类图时,怎样将类由ICON形式(圆形)转为Label形式(方形)
  20. Spring的工作原理(一)简介

热门文章

  1. 2019中南大学计算机学院毕业,中南大学计算机学院2019届毕业生毕业典礼暨学位授予仪式成功举行...
  2. 鬼哥的一次简单脱壳实例(dex)实践
  3. 对不起,你的USB走线可能搞错了!
  4. 中关村十大诚信经销商的不诚信行为——我的富士F50购买战记
  5. 小程序开发与公众号用户关联推送消息
  6. 可以修改APP数据库(图标、名称、背景等)的简单方法
  7. Adobe Photoshop 22.3原生支持苹果 M1 Mac
  8. ubuntu 设置rm 提示
  9. 探讨微博时间流的实现
  10. 【CCCC】PAT : 团体程序设计天梯赛-练习集 L1 答案