业务设计-商品表sku通用设计

业务设计-商品表sku通用设计

在设计商品详情页的sku时,可以参考如下设计

在这里插入图片描述
ER图:
在这里插入图片描述
具体的DDL:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_attribute
-- ----------------------------
DROP TABLE IF EXISTS `t_attribute`;
CREATE TABLE `t_attribute`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
  `attribute_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '属性名称',
  `type` tinyint(1) NULL DEFAULT NULL COMMENT '分类: 0 基础,1销售',
  `catetory_id` bigint NOT NULL COMMENT '分类id',
  `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品所有属性定义' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_category
-- ----------------------------
DROP TABLE IF EXISTS `t_category`;
CREATE TABLE `t_category`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
  `parent_id` bigint NULL DEFAULT NULL COMMENT '父id',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分类名称',
  `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品分类' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_sku
-- ----------------------------
DROP TABLE IF EXISTS `t_sku`;
CREATE TABLE `t_sku`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
  `spu_id` int NULL DEFAULT NULL COMMENT 'spu_id',
  `price` bigint NULL DEFAULT NULL COMMENT '价格,分',
  `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `spu_id`(`spu_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '库存价格' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_sku_attribute
-- ----------------------------
DROP TABLE IF EXISTS `t_sku_attribute`;
CREATE TABLE `t_sku_attribute`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
  `sku_id` bigint NULL DEFAULT NULL COMMENT 'sku_id',
  `attribute_id` bigint NULL DEFAULT NULL COMMENT '属性id',
  `attribute_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '属性值',
  `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '库存属性值' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_spu
-- ----------------------------
DROP TABLE IF EXISTS `t_spu`;
CREATE TABLE `t_spu`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
  `spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '商品名称',
  `catetory_id` bigint NULL DEFAULT NULL COMMENT '分类id',
  `status` int NULL DEFAULT NULL COMMENT '状态: 0、下架,1、上架',
  `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品信息表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_spu_attribute
-- ----------------------------
DROP TABLE IF EXISTS `t_spu_attribute`;
CREATE TABLE `t_spu_attribute`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
  `spu_id` int NULL DEFAULT NULL COMMENT 'spu_id',
  `attribute_id` bigint NULL DEFAULT NULL COMMENT '属性id',
  `created_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品基本属性表' ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

模拟数据:

INSERT INTO `t_attribute` (`id`, `attribute_name`, `type`, `catetory_id`, `created_time`) VALUES (1, '品牌', 0, 1, '2024-01-28 15:02:28');
INSERT INTO `t_attribute` (`id`, `attribute_name`, `type`, `catetory_id`, `created_time`) VALUES (2, '机身内存', 0, 1, '2024-01-28 15:02:31');
INSERT INTO `t_attribute` (`id`, `attribute_name`, `type`, `catetory_id`, `created_time`) VALUES (3, '运行内存', 0, 1, '2024-01-28 15:03:01');
INSERT INTO `t_attribute` (`id`, `attribute_name`, `type`, `catetory_id`, `created_time`) VALUES (4, '型号', 1, 1, '2024-01-28 15:03:44');
INSERT INTO `t_attribute` (`id`, `attribute_name`, `type`, `catetory_id`, `created_time`) VALUES (5, '颜色', 1, 1, '2024-01-28 15:03:46');
INSERT INTO `t_category` (`id`, `parent_id`, `name`, `created_time`) VALUES (1, 0, '手机', '2024-01-28 14:58:03');
INSERT INTO `t_category` (`id`, `parent_id`, `name`, `created_time`) VALUES (2, 0, '电脑', '2024-01-28 14:58:07');
INSERT INTO `t_sku` (`id`, `spu_id`, `price`, `created_time`) VALUES (1, 1, 699900, '2024-01-28 15:07:40');
INSERT INTO `t_sku` (`id`, `spu_id`, `price`, `created_time`) VALUES (2, 1, 799900, '2024-01-28 15:07:40');
INSERT INTO `t_sku` (`id`, `spu_id`, `price`, `created_time`) VALUES (3, 2, 299900, '2024-01-28 15:07:40');
INSERT INTO `t_sku_attribute` (`id`, `sku_id`, `attribute_id`, `attribute_value`, `created_time`) VALUES (1, 1, 4, '12G+512G', '2024-01-28 15:09:31');
INSERT INTO `t_sku_attribute` (`id`, `sku_id`, `attribute_id`, `attribute_value`, `created_time`) VALUES (2, 1, 5, '雅丹黑', '2024-01-28 15:09:31');
INSERT INTO `t_sku_attribute` (`id`, `sku_id`, `attribute_id`, `attribute_value`, `created_time`) VALUES (3, 2, 4, '8G+512G', '2024-01-28 15:09:31');
INSERT INTO `t_sku_attribute` (`id`, `sku_id`, `attribute_id`, `attribute_value`, `created_time`) VALUES (4, 2, 5, '雅丹黑', '2024-01-28 15:09:31');
INSERT INTO `t_sku_attribute` (`id`, `sku_id`, `attribute_id`, `attribute_value`, `created_time`) VALUES (5, 3, 4, '8G+512G', '2024-01-28 15:09:31');
INSERT INTO `t_sku_attribute` (`id`, `sku_id`, `attribute_id`, `attribute_value`, `created_time`) VALUES (6, 3, 5, '雅丹黑', '2024-01-28 15:09:31');
INSERT INTO `t_spu` (`id`, `spu_name`, `catetory_id`, `status`, `created_time`) VALUES (1, '华为/HUAWEI Mate 60', 1, 1, '2024-01-28 15:04:46');
INSERT INTO `t_spu` (`id`, `spu_name`, `catetory_id`, `status`, `created_time`) VALUES (2, '华为/HUAWEI Mate 60 Pro', 1, 1, '2024-01-28 15:05:04');
INSERT INTO `t_spu_attribute` (`id`, `spu_id`, `attribute_id`, `created_time`) VALUES (1, 1, 1, '2024-01-28 15:05:23');
INSERT INTO `t_spu_attribute` (`id`, `spu_id`, `attribute_id`, `created_time`) VALUES (2, 1, 2, '2024-01-28 15:05:23');
INSERT INTO `t_spu_attribute` (`id`, `spu_id`, `attribute_id`, `created_time`) VALUES (3, 1, 3, '2024-01-28 15:05:23');
INSERT INTO `t_spu_attribute` (`id`, `spu_id`, `attribute_id`, `created_time`) VALUES (4, 2, 1, '2024-01-28 15:05:23');
INSERT INTO `t_spu_attribute` (`id`, `spu_id`, `attribute_id`, `created_time`) VALUES (5, 2, 2, '2024-01-28 15:05:23');
INSERT INTO `t_spu_attribute` (`id`, `spu_id`, `attribute_id`, `created_time`) VALUES (6, 2, 3, '2024-01-28 15:05:23');

查询 详情信息

SELECT
 ts.id,
	tc.`name`,
	tss.spu_name,
	ts.price,
	GROUP_CONCAT(tsa.attribute_value)
FROM
	t_sku ts
	LEFT JOIN t_sku_attribute tsa ON ts.id = tsa.sku_id
	LEFT JOIN t_attribute ta ON ta.id = tsa.attribute_id
	LEFT JOIN t_category tc ON tc.id = ta.catetory_id
	LEFT JOIN t_spu tss ON tss.id = ts.spu_id 
	AND tss.`status` =1
	WHERE 1=1
	GROUP BY ts.id,tc.`name`,tss.spu_name

结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 电商ERP商品管理SKU结构的设计应考虑到商品属性、属性值、库存以及价格等因素。 首先,SKU需包含商品基本信息,如商品ID、商品名称、商品描述等。同时,每个SKU可以对应多种商品属性,因此还需添加属性和属性值。属性可以包括属性ID、属性名称等字段,属性值可以包括属性值ID、属性值名称以及对应的属性ID等字段,以方便SKU与属性的关联。 其次,SKU还需考虑库存管理。可以在SKU中添加库存字段,记录当前SKU的库存数量。此外,还可添加预警字段,当库存数量低于设定值时,可以通过预警系统提醒相关人员及时补充库存。 此外,价格管理也是SKU的重要一部分。可以在SKU中添加价格字段,记录当前SKU的价格。如果存在活动价和原价区分,可以添加活动价字段和原价字段,以便进行价格展示和计算。 在设计SKU结构时,还需考虑到商品SKU的关系。一个商品可以对应多个SKU,而一个SKU只能对应一个商品。因此可以在SKU中添加商品ID字段,将SKU商品进行关联。 总之,电商ERP商品管理SKU结构的设计应当综合考虑商品属性、属性值、库存以及价格等因素,以便实现商品属性管理、库存管理和价格管理等功能。 ### 回答2: 电商ERP商品管理中,SKU(Stock Keeping Unit)结构的设计应考虑以下几个方面: 1. 商品基本信息:包括商品ID、商品名称、商品描述等字段,用于唯一标识商品和展示商品基本信息。 2. SKU属性信息:不同SKU可能存在不同的属性,如颜色、尺寸、款式等,可以通过添加属性字段来描述SKU的不同属性。 3. SKU库存信息:包括SKU的库存数量、可售数量等字段,用于实时更新和管理SKU的库存情况。 4. SKU价格信息:包括单价、折扣、促销价等字段,用于管理SKU的定价和促销活动。 5. SKU销售属性:对于存在销售属性的SKU,如鞋子的尺码、颜色等,可以通过添加销售属性字段来记录每个SKU的销售属性组合,方便在下单时进行选择。 6. SKU关联商品信息:对于有关联关系的商品,如套装、推荐组合等,可以通过添加关联商品字段来建立SKU与其他商品的关联关系。 7. SKU图片信息:每个SKU可能有不同的展示图片,可以通过添加图片字段来关联SKU对应的图片信息,方便展示和管理。 8. SKU状态信息:记录SKU的状态,如上架、下架、缺货、预售等,方便管理SKU的上下架和库存状态。 综上所述,电商ERP商品管理中,SKU结构的设计应综合考虑商品基本信息、SKU属性、库存信息、价格信息、销售属性、关联商品、图片和状态等多个方面,以便有效管理和展示SKU的信息。 ### 回答3: 电商ERP商品管理SKU设计需要考虑到以下几个方面。 首先,SKU是指库存单位,它应该包括商品的唯一识别码以及与该商品相关的属性信息,以便于与商品进行关联。因此,SKU应该包含一列用来存储商品的唯一识别码,比如商品编号或条形码。此外,还可以添加其他列来存储商品的属性信息,例如颜色、尺码、款式等。 其次,SKU的结构应该考虑到商品的多样性和组合性。同一款商品可能有多个SKU,每个SKU对应于不同的属性组合。因此,可以使用多列来存储不同的属性信息,然后使用这些列的组合作为SKU的唯一识别码。例如,如果商品具有颜色和尺码两个属性,则可以添加两列分别存储颜色和尺码的信息。 此外,SKU还应该包含与库存相关的字段。例如,可以添加一列来存储该SKU对应的库存数量,以便实时跟踪商品的库存情况。还可以添加一列来存储该SKU对应的价格信息,以便查询和更新商品的价格。 最后,SKU设计还应该考虑到性能和扩展性的需求。如果SKU的数据量较大,可以考虑使用索引来优化查询性能。另外,可以添加其他辅助或字段来存储与SKU相关的数据,如销售记录、供应商信息等,以便于扩展和管理。 综上所述,电商ERP商品管理SKU设计应该综合考虑商品属性、库存信息、性能需求和扩展性,以便于准确、高效地管理和查询商品信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值