摘要:在电商系统中,商品规格与销售属性往往是一类较为复杂的数据结构,不仅仅在于数据的查询存储上,还在于数据库中的属性数据的查询、与Java Bean的转换等。本文将从属性数据的展示为起点,数据库的设计及实现为终点,详细介绍商品规格与销售属性的相关故事。

1. 商品基本规格与销售属性的概念

商品基本规格属性:指不影响商品实际销售价格的属性,只充当解释说明的一系列属性键值对,增强用户对该商品的认识程度,以增加购买欲望。

商品销售属性:指影响商品实际销售价格的属性,通过不同的销售属性,区分某一个产品的不同配置。例如,针对华为mate40,8G+128G和16G+256G,黑色和白色均为销售属性,不同的内存、不同颜色的商品价格不一样。

2. 基本规格与销售属性的区别

每个分类下的商品共享规格参数的键名(KEY)与销售属性的键名(KEY)。但存在商品不一定要用这个分类下的全部属性的键名(KEY)。

  • 属性是以三级分类的形式组织起来

  • 规格参数中有些是可以提供检索的
  • 规格参数也是基本属性,它们也具有自己的分组
  • 属性的分组也是以三级分类组织起来的
  • 属性名确定的,但是值是每一个商品不同来决定的

解释说明:键名和属性名均是指CPU,内存等,并非是指商品具体的数值。

3. 数据库的设计

3.1 E-R 图

3.2 数据库详细设计

由于设计实现较为简单,可以作为数据或思考用,谨慎用于生产环境。

3.5 product 数据库DDL
CREATE DATABASE /*!32312 IF NOT EXISTS*/`product` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `product`;/*Table structure for table `prod_attr` */DROP TABLE IF EXISTS `prod_attr`;CREATE TABLE `prod_attr` (`attr_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '属性id',`attr_name` char(30) DEFAULT NULL COMMENT '属性名',`search_type` tinyint(4) DEFAULT NULL COMMENT '是否需要检索[0-不需要,1-需要]',`icon` varchar(255) DEFAULT NULL COMMENT '属性图标',`value_select` char(255) DEFAULT NULL COMMENT '可选值列表[用逗号分隔]',`attr_type` tinyint(4) DEFAULT NULL COMMENT '属性类型[0-销售属性,1-基本属性,2-既是销售属性又是基本属性]',`enable` bigint(20) DEFAULT NULL COMMENT '启用状态[0 - 禁用,1 - 启用]',`catelog_id` bigint(20) DEFAULT NULL COMMENT '所属分类',`show_desc` tinyint(4) DEFAULT NULL COMMENT '快速展示【是否展示在介绍上;0-否 1-是】,在sku中仍然可以调整',PRIMARY KEY (`attr_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品属性';/*Table structure for table `prod_attr_attrgroup_relation` */DROP TABLE IF EXISTS `prod_attr_attrgroup_relation`;CREATE TABLE `prod_attr_attrgroup_relation` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`attr_id` bigint(20) DEFAULT NULL COMMENT '属性id',`attr_group_id` bigint(20) DEFAULT NULL COMMENT '属性分组id',`attr_sort` int(11) DEFAULT NULL COMMENT '属性组内排序',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='属性&属性分组关联';/*Table structure for table `prod_attr_group` */DROP TABLE IF EXISTS `prod_attr_group`;CREATE TABLE `prod_attr_group` (`attr_group_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分组id',`attr_group_name` char(20) DEFAULT NULL COMMENT '组名',`sort` int(11) DEFAULT NULL COMMENT '排序',`descript` varchar(255) DEFAULT NULL COMMENT '描述',`icon` varchar(255) DEFAULT NULL COMMENT '组图标',`catelog_id` bigint(20) DEFAULT NULL COMMENT '所属分类id',PRIMARY KEY (`attr_group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='属性分组';/*Table structure for table `prod_brand` */DROP TABLE IF EXISTS `prod_brand`;CREATE TABLE `prod_brand` (`brand_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '品牌id',`name` char(50) DEFAULT NULL COMMENT '品牌名',`logo` varchar(2000) DEFAULT NULL COMMENT '品牌logo地址',`descript` longtext COMMENT '介绍',`show_status` tinyint(4) DEFAULT NULL COMMENT '显示状态[0-不显示;1-显示]',`first_letter` char(1) DEFAULT NULL COMMENT '检索首字母',`sort` int(11) DEFAULT NULL COMMENT '排序',PRIMARY KEY (`brand_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COMMENT='品牌';/*Table structure for table `prod_category` */DROP TABLE IF EXISTS `prod_category`;CREATE TABLE `prod_category` (`cat_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类id',`name` char(50) DEFAULT NULL COMMENT '分类名称',`parent_cid` bigint(20) DEFAULT NULL COMMENT '父分类id',`cat_level` int(11) DEFAULT NULL COMMENT '层级',`show_status` tinyint(4) DEFAULT NULL COMMENT '是否显示[0-不显示,1显示]',`sort` int(11) DEFAULT NULL COMMENT '排序',`icon` char(255) DEFAULT NULL COMMENT '图标地址',`product_unit` char(50) DEFAULT NULL COMMENT '计量单位',`product_count` int(11) DEFAULT NULL COMMENT '商品数量',PRIMARY KEY (`cat_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1445 DEFAULT CHARSET=utf8mb4 COMMENT='商品三级分类';/*Table structure for table `prod_category_brand_relation` */DROP TABLE IF EXISTS `prod_category_brand_relation`;CREATE TABLE `prod_category_brand_relation` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`brand_id` bigint(20) DEFAULT NULL COMMENT '品牌id',`catelog_id` bigint(20) DEFAULT NULL COMMENT '分类id',`brand_name` varchar(255) DEFAULT NULL,`catelog_name` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='品牌分类关联';/*Table structure for table `prod_comment_replay` */DROP TABLE IF EXISTS `prod_comment_replay`;CREATE TABLE `prod_comment_replay` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`comment_id` bigint(20) DEFAULT NULL COMMENT '评论id',`reply_id` bigint(20) DEFAULT NULL COMMENT '回复id',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品评价回复关系';/*Table structure for table `prod_product_attr_value` */DROP TABLE IF EXISTS `prod_product_attr_value`;CREATE TABLE `prod_product_attr_value` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`spu_id` bigint(20) DEFAULT NULL COMMENT '商品id',`attr_id` bigint(20) DEFAULT NULL COMMENT '属性id',`attr_name` varchar(200) DEFAULT NULL COMMENT '属性名',`attr_value` varchar(200) DEFAULT NULL COMMENT '属性值',`attr_sort` int(11) DEFAULT NULL COMMENT '顺序',`quick_show` tinyint(4) DEFAULT NULL COMMENT '快速展示【是否展示在介绍上;0-否 1-是】',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='spu属性值';/*Table structure for table `prod_sku_images` */DROP TABLE IF EXISTS `prod_sku_images`;CREATE TABLE `prod_sku_images` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`sku_id` bigint(20) DEFAULT NULL COMMENT 'sku_id',`img_url` varchar(255) DEFAULT NULL COMMENT '图片地址',`img_sort` int(11) DEFAULT NULL COMMENT '排序',`default_img` int(11) DEFAULT NULL COMMENT '默认图[0 - 不是默认图,1 - 是默认图]',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='sku图片';/*Table structure for table `prod_sku_info` */DROP TABLE IF EXISTS `prod_sku_info`;CREATE TABLE `prod_sku_info` (`sku_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'skuId',`spu_id` bigint(20) DEFAULT NULL COMMENT 'spuId',`sku_name` varchar(255) DEFAULT NULL COMMENT 'sku名称',`sku_desc` varchar(2000) DEFAULT NULL COMMENT 'sku介绍描述',`catalog_id` bigint(20) DEFAULT NULL COMMENT '所属分类id',`brand_id` bigint(20) DEFAULT NULL COMMENT '品牌id',`sku_default_img` varchar(255) DEFAULT NULL COMMENT '默认图片',`sku_title` varchar(255) DEFAULT NULL COMMENT '标题',`sku_subtitle` varchar(2000) DEFAULT NULL COMMENT '副标题',`price` decimal(18,4) DEFAULT NULL COMMENT '价格',`sale_count` bigint(20) DEFAULT NULL COMMENT '销量',PRIMARY KEY (`sku_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='sku信息';/*Table structure for table `prod_sku_sale_attr_value` */DROP TABLE IF EXISTS `prod_sku_sale_attr_value`;CREATE TABLE `prod_sku_sale_attr_value` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`sku_id` bigint(20) DEFAULT NULL COMMENT 'sku_id',`attr_id` bigint(20) DEFAULT NULL COMMENT 'attr_id',`attr_name` varchar(200) DEFAULT NULL COMMENT '销售属性名',`attr_value` varchar(200) DEFAULT NULL COMMENT '销售属性值',`attr_sort` int(11) DEFAULT NULL COMMENT '顺序',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='sku销售属性&值';/*Table structure for table `prod_spu_comment` */DROP TABLE IF EXISTS `prod_spu_comment`;CREATE TABLE `prod_spu_comment` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`sku_id` bigint(20) DEFAULT NULL COMMENT 'sku_id',`spu_id` bigint(20) DEFAULT NULL COMMENT 'spu_id',`spu_name` varchar(255) DEFAULT NULL COMMENT '商品名字',`member_nick_name` varchar(255) DEFAULT NULL COMMENT '会员昵称',`star` tinyint(1) DEFAULT NULL COMMENT '星级',`member_ip` varchar(64) DEFAULT NULL COMMENT '会员ip',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`show_status` tinyint(1) DEFAULT NULL COMMENT '显示状态[0-不显示,1-显示]',`spu_attributes` varchar(255) DEFAULT NULL COMMENT '购买时属性组合',`likes_count` int(11) DEFAULT NULL COMMENT '点赞数',`reply_count` int(11) DEFAULT NULL COMMENT '回复数',`resources` varchar(1000) DEFAULT NULL COMMENT '评论图片/视频[json数据;[{type:文件类型,url:资源路径}]]',`content` text COMMENT '内容',`member_icon` varchar(255) DEFAULT NULL COMMENT '用户头像',`comment_type` tinyint(4) DEFAULT NULL COMMENT '评论类型[0 - 对商品的直接评论,1 - 对评论的回复]',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品评价';/*Table structure for table `prod_spu_images` */DROP TABLE IF EXISTS `prod_spu_images`;CREATE TABLE `prod_spu_images` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`spu_id` bigint(20) DEFAULT NULL COMMENT 'spu_id',`img_name` varchar(200) DEFAULT NULL COMMENT '图片名',`img_url` varchar(255) DEFAULT NULL COMMENT '图片地址',`img_sort` int(11) DEFAULT NULL COMMENT '顺序',`default_img` tinyint(4) DEFAULT NULL COMMENT '是否默认图',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='spu图片';/*Table structure for table `prod_spu_info` */DROP TABLE IF EXISTS `prod_spu_info`;CREATE TABLE `prod_spu_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '商品id',`spu_name` varchar(200) DEFAULT NULL COMMENT '商品名称',`spu_description` varchar(1000) DEFAULT NULL COMMENT '商品描述',`catalog_id` bigint(20) DEFAULT NULL COMMENT '所属分类id',`brand_id` bigint(20) DEFAULT NULL COMMENT '品牌id',`weight` decimal(18,4) DEFAULT NULL,`publish_status` tinyint(4) DEFAULT NULL COMMENT '上架状态[0 - 下架,1 - 上架]',`create_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='spu信息';/*Table structure for table `prod_spu_info_desc` */DROP TABLE IF EXISTS `prod_spu_info_desc`;CREATE TABLE `prod_spu_info_desc` (`spu_id` bigint(20) NOT NULL COMMENT '商品id',`decript` longtext COMMENT '商品介绍',PRIMARY KEY (`spu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='spu信息介绍';

电商系统-商品规格与销售属性的研究及数据库设计相关推荐

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

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

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

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

  3. mysql商品规格设计_如何设计电商系统商品模块-规格

    简介 商品模块是电商系统核心模块,本文主要讲解商品模块功能需求.术语概念.功能设计.数据结构.相关功能设计思路. 近几年开发了很多电商类系统,将我们一些设计经验整理并分享给大家. 需求分析 电商系统后 ...

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

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

  5. 微服务项目之电商--17.商品规格数据结构SPU和SKU

    目录 1.商品规格数据结构 1.1.SPU和SKU 1.2.数据库设计分析 1.2.1.思考并发现问题 1.2.2.分析规格参数 1.2.3.SKU的特有属性 1.3.规格参数表 1.3.1.表结构 ...

  6. 电商项目——商品规格管理

    商品规格管理 商品规格数据结构 淘淘商城是一个全品类的电商网站,因此商品的种类繁多,每一件商品,其属性又有差别.为了更准确描述商品及细分差别,抽象出两个概念:SPU和SKU SPU和SKU SPU:S ...

  7. 商品规格表的制作 mysql_购物商城数据库设计-商品表DDL(Mysql)

    大家好,之前我们设计了购物商城的商品表结构(原文链接),现在我们来具体实现表的DDL. 下载地址:前往下载 新建一个数据库,名字叫mall,基字符集:utf-8,:数据库排序规则:utf-8_gene ...

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

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

  9. 电商项目——商品服务-API-属性分组——第十一章——上篇

    电商项目--初识电商--第一章--上篇 电商项目--分布式基础概念和电商项目微服务架构图,划分图的详解--第二章--上篇 电商项目--电商项目的虚拟机环境搭建_VirtualBox,Vagrant-- ...

最新文章

  1. Linux 系统有关Systemd 的知识
  2. Android 动态Tab分页效果实现
  3. 2022Go安装goimports第三方库命令
  4. adb 获取当前activity_ADB 你想找的命令都在这里
  5. 【深度揭秘】百度、阿里、腾讯内部岗位级别和薪资结构,附带求职建议!
  6. 确认了!华为P30 Pro包装盒曝光:后置四摄+水滴屏
  7. SAP License:SAP顾问面试问题
  8. 女粉想要找男朋友,竟是为了...
  9. Redis的安装启动,菜鸟使用(windows)
  10. java实现身份证号码的严格校验!
  11. 一款轻量级的权限框架,轻松搞定项目权限
  12. 四阶行列式直接展开_四阶行列式的完全展开式共有多少项
  13. 高举5G和AI两面旗帜:紫光展锐市场峰会火爆申城
  14. 【转】个性化二级域名Nginx配置
  15. vue遇到ie兼容问题如何处理_Vue 2.0 解决IE浏览器的兼容性
  16. 物联网案例(一):将设备数据转换为明智决策
  17. Java咖啡馆(4)——品味第一杯咖啡
  18. 5种经典的Linux桌面系统
  19. 雨听|Mac使用“打印”将文件保存为本地PDF
  20. 产品经理 - 产品设计方法论业务落地部分_包括流程产品文档方法论需求设计方法论

热门文章

  1. MySQL创建表 和 添加数据 查询数据
  2. 高并发系统三大利器之降级
  3. pca 累积方差贡献率公式_PCA的原理及详细步骤
  4. 13种老人不适合带孩子_13种老人不适合带孩子
  5. 分享大骆驼RK3288B开源硬件光盘资料下载链接
  6. 在mac上从外置硬盘启动windows教程
  7. QTableWidgetItem setText并无效果
  8. Flash Builder4.7 更新Air SDK及FlashPlayer
  9. sas数字转日期格式_[转载]SAS中日期转换全攻略
  10. 使用python scrapy爬取知乎提问信息