商品域完整设计(算法版)
一、商品域的核心职责与业务边界
1. 业务定位
商品域作为商品主数据唯一源,负责管理商品全生命周期信息,为采购、销售、仓储、财务等域提供准确、一致的商品基础数据。
2. 核心职责
- 
商品信息管理:SKU创建、变更、下架、淘汰
 - 
商品分类体系:多级分类、标签体系
 - 
价格管理:基础定价、价格策略、调价历史
 - 
商品关系管理:组合商品、替代商品、互斥商品
 - 
商品状态流转:生命周期状态管理
 - 
商品数据服务:为其他域提供商品查询服务
 
二、商品域表结构ER设计
-- 创建商品域数据库
CREATE DATABASE product_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE product_db;
-- 1. 商品分类表
CREATE TABLE product_categories (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    category_code VARCHAR(50) NOT NULL UNIQUE COMMENT '分类编码',
    category_name VARCHAR(100) NOT NULL COMMENT '分类名称',
    parent_id BIGINT COMMENT '父级分类ID',
    level TINYINT DEFAULT 1 COMMENT '分类层级',
    sort_order INT DEFAULT 0 COMMENT '排序',
    description TEXT COMMENT '分类描述',
    is_active BOOLEAN DEFAULT TRUE,
    created_by VARCHAR(50) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (parent_id) REFERENCES product_categories(id),
    INDEX idx_parent (parent_id),
    INDEX idx_code (category_code)
) COMMENT '商品分类表';
-- 2. 商品品牌表
CREATE TABLE product_brands (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    brand_code VARCHAR(50) NOT NULL UNIQUE COMMENT '品牌编码',
    brand_name VARCHAR(100) NOT NULL COMMENT '品牌名称',
    brand_logo VARCHAR(500) COMMENT '品牌Logo',
    description TEXT COMMENT '品牌描述',
    country VARCHAR(50) COMMENT '品牌国家',
    is_active BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_brand_code (brand_code)
) COMMENT '商品品牌表';
-- 3. 商品供应商关系表
CREATE TABLE product_suppliers (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    product_id BIGINT NOT NULL,
    supplier_id BIGINT NOT NULL COMMENT '供应商ID',
    supplier_product_code VARCHAR(100) COMMENT '供应商商品编码',
    supplier_product_name VARCHAR(200) COMMENT '供应商商品名称',
    is_primary BOOLEAN DEFAULT FALSE COMMENT '是否主供应商',
    lead_time INT COMMENT '交货周期(天)',
    min_order_quantity DECIMAL(10,2) COMMENT '最小起订量',
    is_active BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY uk_product_supplier (product_id, supplier_id),
    INDEX idx_supplier (supplier_id),
    FOREIGN KEY