电商系统-SPU与SKU

一、SPU与SKU概念

1.1 SPU

SPU(Standard Product Unit)标准产品单位,是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。例如:华为P20 pro就是一个SPU,与商家,与颜色、款式、套餐都无关。

1.2 SKU

SKU(Stock Keeping Unit)库存量单位,可以是以件、盒、托盘等为单位。SKU是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管理模式来处理。在服装、鞋类商品中使用最多最普遍。例如:

  • 华为P20 pro 宝石蓝 64G
  • 华为P20 pro 亮黑色 64G
  • 华为P20 pro 宝石蓝 128G
  • 华为P20 pro 亮黑色 128G

二、功能设计示意图

功能设计示意图

注:商品分类表里有个有个模板id,关联模板。商品选择分类后就将该分类对应的模板内容带过来

三、数据表设计

数据表设计

四、数据格式截图

数据格式截图一
数据格式截图二

四、使用JAVA8新特性实现笛卡尔积

以前实现笛卡尔积比较繁琐,使用java8的新特性提高了代码的简洁度,也更容易实现

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class DescartesDemo {

    public static void main(String[] args) {
        List<String> colorList = Arrays.asList("红色", "黑色", "金色");
        List<String> sizeList = Arrays.asList("32G", "64G");
        List<String> placeList = Arrays.asList("国产", "进口");

        List<String> descartesList = descartes(colorList, sizeList, placeList);
        descartesList.forEach(System.out::println);

    }

    public static List<String> descartes(List<String>... lists) {
        List<String> tempList = new ArrayList<>();
        for (List<String> list : lists) {
            if (tempList.isEmpty()) {
                tempList = list;
            } else {
                //java8新特性,stream流
                tempList = tempList.stream().flatMap(item -> list.stream().map(item2 -> item + " " + item2)).collect(Collectors.toList());
            }
        }
        return tempList;
    }
}

运行结果

红色 32G 国产
红色 32G 进口
红色 64G 国产
红色 64G 进口
黑色 32G 国产
黑色 32G 进口
黑色 64G 国产
黑色 64G 进口
金色 32G 国产
金色 32G 进口
金色 64G 国产
金色 64G 进口

最后给大家送波福利

阿里云折扣快速入口

阿里云折扣快速入口
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容