新零售电商数据库设计(1)品类和参数表关系

产品和商品区别

iphone10就是一个产品,iphone 256g就是一个商品。SPU stand product unit 标准产品单位,描叙一个产品的各种特性。

SKU stock keeping unit 库存的计量单位,SKU是物理上不可分割的最小单元。B2C修改SKU对搜索权重影响不大,B2B修改SKU对搜索权重影响很大。

SKU如何和参数对应

如上衣品类不同参数不同,有颜色,领袖等。手机就有屏幕内存等不同参数。

采用

品类表和参数表,1vn解决每个频率参数不同问题。列如手机是品类表,内存,屏幕,cpu就是参数表。

产品表和品类表是1v1关系,产品表和商品表是1vn关系

因为没有比较好的免费ER图软件所以直接上SQL

品类表

/*
 Navicat Premium Data Transfer

 Source Server         : localhost
 Source Server Type    : MySQL
 Source Server Version : 50724
 Source Host           : localhost:3306
 Source Schema         : neti

 Target Server Type    : MySQL
 Target Server Version : 50724
 File Encoding         : 65001

 Date: 10/03/2020 08:26:17
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_spec_group
-- ----------------------------
DROP TABLE IF EXISTS `t_spec_group`;
CREATE TABLE `t_spec_group`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  `spg_id` int(10) UNSIGNED NOT NULL COMMENT '品类编号',
  `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '品类名称',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `unq_spg_id`(`spg_id`) USING BTREE,
  UNIQUE INDEX `unq_name`(`name`) USING BTREE,
  INDEX `idx_spg_id`(`spg_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '品类表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_spec_group
-- ----------------------------
INSERT INTO `t_spec_group` VALUES (1, 10001, '手机');
INSERT INTO `t_spec_group` VALUES (2, 10002, '手机线');
INSERT INTO `t_spec_group` VALUES (3, 10003, '手机电池');
INSERT INTO `t_spec_group` VALUES (4, 11001, '液晶电视');
INSERT INTO `t_spec_group` VALUES (5, 11002, '投影电视');

SET FOREIGN_KEY_CHECKS = 1;

 

 参数表

CREATE TABLE t_spec_param(
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
    spg_id INT UNSIGNED NOT NULL COMMENT '品类编号',
    spp_id INT UNSIGNED NOT NULL COMMENT '参数编号',
    `name` VARCHAR(200) NOT NULL COMMENT '参数名称',
    `numeric` BOOLEAN NOT NULL COMMENT '是否为数字参数',
    unit VARCHAR(200) COMMENT '单位(量词)',
    generic BOOLEAN NOT NULL COMMENT '是否为通用参数',
    searching BOOLEAN NOT NULL COMMENT '是否用于通用搜索',
    segements VARCHAR(500) COMMENT '参数值',
    is_delete BOOLEAN NOT NULL DEFAULT 0 COMMENT '是否删除',
    INDEX idx_spg_id(spg_id),
    INDEX idx_spp_id(spp_id)
    )COMMENT='参数表';
INSERT INTO `t_spec_param` VALUES (1, 10001, 1, 'CPU', 0, NULL, 1, 0, NULL, 0);
INSERT INTO `t_spec_param` VALUES (2, 10001, 2, '运存', 1, 'GB', 1, 1, NULL, 0);
INSERT INTO `t_spec_param` VALUES (3, 10001, 3, '内存', 1, 'GB', 1, 1, NULL, 0);
INSERT INTO `t_spec_param` VALUES (4, 10001, 4, '屏幕尺寸', 1, '英寸', 1, 1, NULL, 0);
INSERT INTO `t_spec_param` VALUES (5, 10001, 5, '电池', 1, '毫安时', 1, 0, NULL, 0);
INSERT INTO `t_spec_param` VALUES (6, 11001, 1, '屏幕尺寸', 1, '英寸', 1, 1, NULL, 0);
INSERT INTO `t_spec_param` VALUES (7, 11001, 2, '长度', 1, '厘米', 1, 0, NULL, 0);
INSERT INTO `t_spec_param` VALUES (8, 11001, 3, '高度', 1, '厘米', 1, 0, NULL, 0);
INSERT INTO `t_spec_param` VALUES (9, 11001, 4, '宽度', 1, '厘米', 1, 0, NULL, 0);
INSERT INTO `t_spec_param` VALUES (10, 11001, 5, '分辨率', 0, '像素', 1, 1, '720P\\1080P\\4K\\8K', 0);

 

posted on 2020-03-09 21:51  清浊  阅读(849)  评论(0)    收藏  举报