一、SPU與SKU概念
1.1 SPU
SPU(Standard Product Unit)標(biāo)準(zhǔn)產(chǎn)品單位,是商品信息聚合的最小單位,是一組可復(fù)用、易檢索的標(biāo)準(zhǔn)化信息的集合,該集合描述了一個(gè)產(chǎn)品的特性。通俗點(diǎn)講,屬性值、特性相同的商品就可以稱為一個(gè)SPU。例如:華為P20 pro就是一個(gè)SPU,與商家,與顏色、款式、套餐都無(wú)關(guān)。
1.2 SKU
SKU(Stock Keeping Unit)庫(kù)存量單位,可以是以件、盒、托盤等為單位。SKU是物理上不可分割的最小存貨單元。在使用時(shí)要根據(jù)不同業(yè)態(tài),不同管理模式來(lái)處理。在服裝、鞋類商品中使用最多最普遍。例如:
- 華為P20 pro 寶石藍(lán) 64G
- 華為P20 pro 亮黑色 64G
- 華為P20 pro 寶石藍(lán) 128G
- 華為P20 pro 亮黑色 128G
二、功能設(shè)計(jì)示意圖

功能設(shè)計(jì)示意圖
注:商品分類表里有個(gè)有個(gè)模板id,關(guān)聯(lián)模板。商品選擇分類后就將該分類對(duì)應(yīng)的模板內(nèi)容帶過(guò)來(lái)
三、數(shù)據(jù)表設(shè)計(jì)

數(shù)據(jù)表設(shè)計(jì)
四、數(shù)據(jù)格式截圖

數(shù)據(jù)格式截圖一

數(shù)據(jù)格式截圖二
四、使用JAVA8新特性實(shí)現(xiàn)笛卡爾積
以前實(shí)現(xiàn)笛卡爾積比較繁瑣,使用java8的新特性提高了代碼的簡(jiǎn)潔度,也更容易實(shí)現(xiàn)
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("國(guó)產(chǎn)", "進(jìn)口");
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;
}
}
運(yùn)行結(jié)果
紅色 32G 國(guó)產(chǎn)
紅色 32G 進(jìn)口
紅色 64G 國(guó)產(chǎn)
紅色 64G 進(jìn)口
黑色 32G 國(guó)產(chǎn)
黑色 32G 進(jìn)口
黑色 64G 國(guó)產(chǎn)
黑色 64G 進(jìn)口
金色 32G 國(guó)產(chǎn)
金色 32G 進(jìn)口
金色 64G 國(guó)產(chǎn)
金色 64G 進(jìn)口
最后給大家送波福利

阿里云折扣快速入口