电商商品中常常能看到

其中,Color, 与Size,就是所谓的商品属性;

1.数据库如何设计

(1)商品表:goods

这个表很简单,根据需求来设计

(2)规格表:goods_attr

(3)规格属性:goods_attr_vals

(4)商品SKU:goods_sku

到这里数据库,基本上设计完了

2.给前端接口中的数据结构

我的做法是后端处理好结构返回数据

(1)商品信息:info

(2)商品属性:attr

(3)商品SKU:sku

(4)有效属性:tags

解释:

info,商品信息,就没什么要求,反正需要显示的。

attr,是商品的规格,用来循环属性名称,以及属性下的子属性值,id 与 SKU中的 “k1_4_9”关联

tags,作用是,从goods_sku中的 attr_group分解读出。id与id之间的关联。(就类似,选中白色,S,和8G 的id 就会有关联),这个方便前端点击规格后,那些关联规格高亮(就是有效)

sku,最后通过选择每个属性中的一个具体子属性值,selected = {0:1,1:4,2:9}(这是前端选择属性时,组成的一个当前选中属性值对象。序号0,1,2代表3个规格attr的序号,1,4,9,代表选中对应的id),最后通过组成 "k1_4_9"。可在sku中找到对应sku数据。

3.前端如何处理多个规格中,点击其中一个,其余高亮

我的思路是,一个商品,goods_attr_vals属性值是以id做主键,所以必然不会重复。

tags数据结构,当选中1时,所有子属性值中,id = “1,4,9”高亮。

当选中,4时[1,2,4,9,10],与[1,4,9]取交集,结果是[1,4,9]。依次类推。便可得出。

其中没有说到的,

每次点击时,根据 selected 来值来判断,初始selected = {},当选中某个规格时,selected = {0:1} 或者 selected = {1:4}。

然后循环selected 来查看tags 中 对应的数组值,将其进行取交集便可得出

代码:

    /*** 选中规格*/  onAttr(i, k) {if (this.selected[i] === k) {delete this.selected[i];} else {this.selected[i] = this.attr[i][k].id;}/*** 判断交集规格*/hasAttr() {let temp = [];const arr = this.tags;for (let i in this.selected) {const id = this.selected[i];if(temp.length == 0){temp = [].concat(arr[id]);}else{temp = temp.filter((item) => arr[id].indexOf(item) > -1);}}return temp;},

电商项目中的SKU设计,前端后端数据逻辑相关推荐

  1. 【项目实战】电商项目中的SPU与SKU傻傻分不清楚

    一.SPU与SKU介绍 电商里面一般对商品的单位都有 SPU 或 SKU,这两个概念有什么区别? 在电商项目中,SPU和SKU是两个常用的概念,它们分别表示不同的商品信息. 从广义上讲,类目>S ...

  2. 电商项目中订单系统到底该怎么设计才好?(至尊典藏版)

    目录 前言 一.订单系统架构 1. 订单系统在企业中的角色 2. 订单系统与各业务系统的关系 3. 订单系统上下游关系​编辑 4. 订单系统的业务架构​编辑 二.订单系统核心功能 1. 订单中所包含的 ...

  3. 电商项目中的经典问题

    转载自:https://blog.csdn.net/A_BlackMoon/article/details/80094814 请描述一下这个系统? [回答技巧] 从3个方面来回答这个问题: |--系统 ...

  4. 电商项目的数据库表设计(MySQL版)

    简介: 目的: 电商常用功能模块的数据库设计 常见问题的数据库解决方案 环境: MySQL5.7 图形客户端,SQLyog Linux 模块: 用户:注册.登陆 商品:浏览.管理 订单:生成.管理 仓 ...

  5. 关于电商项目中的秒杀实现方案

    秒杀:秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到.对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前 ...

  6. 电商项目中SPU与SKU的设计

    1. 先说明几个概念. 电商网站采用在商品模块,常采用spu+sku的数据结构算法,这种算法可以将商品的属性和商品的基本信息分离,分开维护,这样我们就可以在不同的类目下自定义商品信息和分类的属性信息, ...

  7. 电商项目中两个重要的属性SPU和SKU

    1.SPU(Standard Product Unit),标准产品单位(商品共有的属性和集合形成的SPU) SPU是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品 ...

  8. 电商项目中的SPU和SKU概念

    SPU SPU:Standard Product Unit,标准产品单位. 概念:SPU 是商品信息聚合的最小单位[即:商品共同的属性],是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的 ...

  9. 测试从零开始-电商项目实战-用例设计篇No.1-[后台-用户列表]

    在之前的文章中,已经教大家搭建了电商网站,如果有没找到的,可以再私聊一下我.接下来,简单介绍一下,在公司中,一般我们怎么去开展测试. 这里我们抛开所有的理想状态,就只有这个项目的访问地址,数据库信息, ...

最新文章

  1. 未来农业科技:物联网如何阻止全球粮荒
  2. 最通俗易懂的YOLOv3原理及代码解析
  3. xpe低配置系统解决“写缓存失败”问题
  4. 算法提高 解二元一次方程组(java)
  5. SQL ROUND函数用法
  6. [android]亲自破解Flappy Bird(去广告+永生)
  7. redis命令参考string---MSETNX
  8. sql拼接同一字段_sql多个字段拼接
  9. x64dbg 黑色主题配色方案
  10. 美发明家脑洞大开 预测十几年后电脑会产生感情
  11. 用Go+绘制爱心给心爱的她表白
  12. 怎样做个微信图文链接广告宣传活动?
  13. C语言基本变量语法输出和输入方法
  14. 《计算几何》学习笔记
  15. C# 日期转换AM/PM
  16. 交叉编译tftpd32嵌入mini2440小板tftp撩起jffs2系统的fs2410小板:)in.tftpd即tftpd
  17. IIS无法下载文件的原因及解决方法
  18. InnoSetup打包工具使用;C#打包工具;VB打包工具;EXE打包工具;C++打包工具
  19. 期权合约怎么看?期权合约解读
  20. win10电脑插耳机没声音_如何免费的用Win10对电脑的声音进行录音

热门文章

  1. hadoop安装作业
  2. HDU4489 动归解决
  3. loop与for loop分别实现乘法口诀表
  4. [JZOJ5629]【NOI2018模拟4.4】Map
  5. 3.9 编写程序,模拟石头剪刀布游戏。程序随机产生一个数,这个数为2、1或0,分别表示石头剪刀和布。
  6. 移动端应用视频小程序加密播放(存档)
  7. 我们到底该转行Web全栈工程师吗?
  8. 亲爱的,60句感人歌词,有没有一句触动了你
  9. 通过位与方法获取三色值,十六进制色值转换RGB
  10. BTC钱包(wallet.dat 文件密码与私钥的区别)