商超商品域配置化设计与智能分析解决方案
1. 核心数据模型设计
1.1 表关系逻辑说明
product_category (分类主表)
    ↑
    | (1:N) 分类作为商品的基础维度
    |
product_base (商品主表) ←→ (1:N) product_extension (扩展数据)
    |                           |
    | (N:1) 扩展数据引用字段定义  |
    ↓                           ↓
metadata_dict (字段定义中心) ← 配置化分析规则
设计要点:
- 
分类表独立:分类作为稳定业务维度,支持树形结构和权限控制
 - 
基础扩展分离:基础表存储稳定核心数据,扩展表支持动态字段
 - 
元数据驱动:所有字段定义统一管理,支持分析配置
 - 
多租户隔离:通过customer_id实现数据逻辑隔离
 
1.2 四表关系架构
-- 1. 商品分类表 - 稳定的基础维度(不适合配置化)
CREATE TABLE product_category (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    category_name VARCHAR(100) NOT NULL COMMENT '分类名称',
    parent_id BIGINT DEFAULT 0 COMMENT '父级ID,支持树形结构',
    customer_id VARCHAR(50) NOT NULL COMMENT '商户ID',
    sort_order INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    INDEX idx_customer_parent (customer_id, parent_id),
    INDEX idx_customer_sort (customer_id, sort_order)
) COMMENT '商品分类基础表 - 稳定的业务维度';
-- 2. 元数据字典表 - 配置化核心引擎
CREATE TABLE metadata_dict (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    field_code VARCHAR(100) NOT NULL COMMENT '字段编码,唯一标识',
    field_name VARCHAR(100) NOT NULL COMMENT '显示名称',
    field_type ENUM('string','number','date','select','boolean') NOT NULL,
    field_length INT DEFAULT 255,
    is_required BOOLEAN DEFAULT FALSE,
    validation_rule JSON COMMENT '校验规则',
    options JSON COMMENT '下拉选项',
    customer_id VARCHAR(50) DEFAULT 'public' COMMENT 'public为公共字段',
    category_id BIGINT COMMENT '关联分类,NULL表示通用',
    
    -- 分析配置扩展
    is_analyzable BOOLEAN DEFAULT FALSE COMMENT '是否参与分析',
    analysis_field_name VARCHAR(100) COMMENT '分析字段名(英文)',
    analysis_data_type ENUM('dimension','metric') COMMENT '维度/指标',
    analysis_group VARCHAR(50) COMMENT '分析分组',
    display_order INT DEFAULT 0 COMMENT '分析显示顺序',
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    FOREIGN KEY (category_id) REFERENCES product_category(id),
    UNIQUE KEY uk_field_customer (field_code, customer_id),
    INDEX idx_customer_category (customer_id, category_id)
) COMMENT '元数据字典表 - 配置化核心,支持分析扩展';
-- 3. 商品基础表 - 核心业务数据
CREATE TABLE product_base (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    product_code VARCHAR(50) NOT NULL COMMENT '商品编码,业务唯一',
    base_name VARCHAR(200) NOT NULL COMMENT '商品基础名称',
    base_spec VARCHAR(100) COMMENT '商品规格',
    category_id BIGINT NOT NULL COMMENT '分类ID',
    customer_id VARCHAR(50) NOT NULL COMMENT '商户ID',
    status ENUM('active','inactive') DEFAULT 'active',
    created_at TIMESTAMP DEFAULT