--- name: master-product description: 商品资料主表 - 服装行业数据仓库核心表,存储商品基础信息、统计分析维度和业务指标,包含分类、品牌、颜色、尺码、季节等维度代码 license: MIT compatibility: opencode metadata: category: database domain: retail-erp table_type: master --- # 商品资料主表 (master_product) ## 表信息 - **表名**: master_product - **主键**: product_id - **时间字段**: created_at, updated_at, launch_date, data_date - **查询日期字段**: (不适用,主数据表) ## 关键字段 | 字段名 | 数据类型 | 查询用途 | |--------|----------|----------| | product_id | varchar(50) | 商品ID,主键标识 | | product_code | varchar(50) | 商品编码/货号,唯一标识 | | product_barcode | varchar(20) | 国际商品条码/EAN码,用于扫码识别 | | product_name | varchar(200) | 商品名称,支持模糊查询 | | product_name_en | varchar(200) | 商品英文名称,用于国际化查询 | | product_short_name | varchar(100) | 商品简称/缩写,用于快速识别 | | **category_code** | varchar(20) | **分类代码,关联master_product_dimension(type='category_major/minor')** | | category_name | varchar(100) | 分类名称,用于商品分类筛选 | | **brand_code** | varchar(20) | **品牌代码,关联master_product_dimension(type='brand')** | | brand_name | varchar(100) | 品牌名称,用于品牌筛选 | | style_code | varchar(30) | 款式编码,用于款式识别 | | **color_code** | varchar(20) | **颜色代码,关联master_product_dimension(type='color_family')** | | color_name | varchar(50) | 颜色名称,用于颜色筛选 | | **size_code** | varchar(10) | **尺码代码,关联master_product_dimension(type='size_group')** | | size_name | varchar(20) | 尺码名称,用于尺码筛选 | | **season_code** | varchar(10) | **季节代码,关联master_product_dimension(type='season')** | | year | int | 年份,用于季节年份筛选 | | collection | varchar(50) | 系列/批次,用于系列分析 | | min_order_qty | int | 最小起订量,用于采购计划 | | lead_time_days | int | 采购提前期(天),用于供应链分析 | | cost_price | decimal(10,2) | 成本价,用于毛利计算 | | suggested_retail_price | decimal(10,2) | 建议零售价,用于价格分析 | | current_price | decimal(10,2) | 当前售价,用于价格筛选 | | currency_code | varchar(3) | 货币代码,默认CNY | | safety_stock | int | 安全库存水平,用于库存预警 | | max_stock | int | 最高库存量,用于容量管理 | | reorder_point | int | 补货点,用于补货提醒 | | economic_order_qty | int | 经济订货量,用于采购优化 | | abc_class | varchar(1) | ABC分类(A/B/C),用于库存管理 | | xyz_class | varchar(1) | XYZ分类(X/Y/Z),用于需求稳定性分析 | | sales_velocity | decimal(10,2) | 销售流速(日均销量),用于畅销品分析 | | sell_through_rate | decimal(5,4) | 售罄率,用于商品周转分析 | | gross_margin | decimal(5,4) | 毛利率,用于盈利能力分析 | | return_rate | decimal(5,4) | 退货率,用于质量分析 | | product_status | varchar(20) | 商品状态:active/inactive/discontinued | | launch_date | date | 上市日期,用于新品分析 | | discontinuation_date | date | 停售日期,用于退市分析 | | data_date | date | 数据日期(数据仓库快照) | | created_at | datetime | 创建时间,用于时间序列分析 | | updated_at | datetime | 更新时间,用于数据变更跟踪 | | deleted_at | datetime | 删除时间,用于数据归档查询 | ## 关联关系 - **被关联**: - bill_*.product_id → 本表.product_id (所有单据表的商品关联) - stock_store_snapshot.product_id → 本表.product_id (库存快照) **维度字段说明**: - `category_code`, `brand_code`, `color_code`, `size_code`, `season_code`, `style_code` 字段存储维度编码 - 这些字段**不需要外键关联**,直接存储维度表的code值 - 查询时可直接使用这些编码值进行筛选 - 维度表`master_product_dimension`作为独立数据字典,提供编码与名称的映射关系 ## 在查询拆解中的角色 - **where部分**:用于商品范围筛选,用户提到的商品条件必须映射到本表字段,维度代码字段(category_code, brand_code等)可直接使用编码值筛选 - **from部分**:可作为主表查询商品信息,或作为关联表提供商品维度 - **汇总部分**:可按category、brand、color、size、season等维度分组统计,也可按业务指标(price, sales_velocity等)进行聚合分析 ## 维度默认值参考 以下为商品维度表的固定分类编码,用于理解业务含义和构建查询条件: ### 1. 商品大类 (category_major) | 编码 | 名称 | 描述 | |------|------|------| | CLOTHING | 服装 | 服装类商品 | | SHOES | 鞋类 | 鞋类商品 | | ACCESSORIES | 配饰 | 配饰类商品 | ### 2. 季节 (season) | 编码 | 名称 | 描述 | |------|------|------| | SS | 春夏 | 春季和夏季 | | FW | 秋冬 | 秋季和冬季 | ### 3. 波段 (wave) - 用于商品上市计划 | 编码 | 名称 | 描述 | |------|------|------| | W1 | 第一波段 | 第一波段商品 | | W2 | 第二波段 | 第二波段商品 | ### 4. 面料 (fabric) - 用于商品材质分类 | 编码 | 名称 | 描述 | |------|------|------| | COTTON | 棉 | 棉质面料 | | POLYESTER | 涤纶 | 涤纶面料 | | WOOL | 羊毛 | 羊毛面料 | ### 5. 颜色色系 (color_family) | 编码 | 名称 | 描述 | |------|------|------| | RED | 红色系 | 红色系列 | | BLUE | 蓝色系 | 蓝色系列 | | BLACK | 黑色系 | 黑色系列 | ### 6. 尺码组 (size_group) | 编码 | 名称 | 描述 | |------|------|------| | XS-S | 超小-小号 | 超小号到小号 | | M-L | 中号-大号 | 中号到大号 | | XL-XXL | 加大-特大号 | 加大号到特大号 | **使用说明**: - 维度代码字段直接存储维度编码,无需外键关联 - WHERE条件示例:`WHERE season_code = 'SS' AND category_code = 'CLOTHING'` - 对于商品表未直接存储的维度(如wave、fabric),可通过维度表独立查询,但不需要与商品表关联 - 维度表作为独立数据字典,提供编码与名称的映射关系 ## 多步骤查询支持 - **维度筛选优先**:复杂查询建议先筛选维度代码,再关联商品数据 - **中间表创建**:可作为筛选条件的源表,创建中间表保存筛选的商品ID - **中间表格式**:{user_id}_{datetime}_step{n}_filtered_products - **中间表关键字段**:product_id, product_code, product_name, category_code, category_name, brand_code, brand_name, color_code, size_code, season_code, current_price, product_status - **维度筛选步骤**: 1. 直接使用维度编码筛选商品:WHERE category_code = 'CLOTHING' AND season_code = 'SS' 2. 如需获取维度名称:可单独查询master_product_dimension表,但不需要与商品表关联 3. 创建中间表保存筛选结果 4. 关联业务数据:用中间表商品ID关联查询销售、库存等业务数据 - **示例流程**:用户查询"2024年春夏系列服装类商品的销售数据" → 1. 筛选season_code='SS' AND year=2024 2. 筛选category_code='CLOTHING' 3. 创建中间表包含符合条件的商品ID 4. 用中间表关联bill_sales_retail查询销售数据 - **性能优化**:对于大量商品筛选,建议先按核心维度(category, season)缩小范围,再关联其他条件