--- name: database-schema-index description: 服装零售ERP数据库架构总索引,包含查询拆解框架、档案映射规则(含维度表)、多步骤执行逻辑和所有表skill清单 license: MIT compatibility: opencode metadata: category: database domain: retail-erp tables: 24 language: zh-CN --- # 数据库架构查询框架 ## 查询拆解模型 所有查询必须拆解为五个部分: 1. **查询部分**:SELECT字段,确定返回的数据维度 2. **from部分**:主表和关联表,明确数据来源 3. **where部分**:查询条件,特别关注档案映射 4. **汇总部分**:GROUP BY和聚合函数 5. **排序部分**:ORDER BY规则 ## 档案映射规则 用户查询条件必须映射到对应的档案表字段,特别关注维度表关联: ### 店铺范围映射 - **基础信息**:店铺名称、城市、省份、地址等 → `master_store`表字段 - **状态信息**:店铺状态、是否激活、开业日期等 → `master_store`表字段 - **维度筛选**:经营权模式、店铺定位、零售业态、市场层级、销售渠道、区域等 → 使用`master_store`表的维度ID字段直接筛选 - 示例:"旗舰店" → `store_tier_id` = 维度表中FLA编码对应的ID - 示例:"直营店" → `business_model_id` = 维度表中DIR编码对应的ID - 示例:"购物中心店" → `retail_format_id` = 维度表中SMC编码对应的ID - **注意**:维度ID直接存储在字段中,无需外键关联。可通过子查询从`master_store_dimension`表获取ID值 ### 商品范围映射 - **基础信息**:商品名称、编码、条码、款式等 → `master_product`表字段 - **业务指标**:价格、库存、销售流速、毛利率等 → `master_product`表字段 - **维度筛选**:分类、品牌、颜色、尺码、季节等 → 使用`master_product`表的维度代码字段直接筛选 - 示例:"服装类" → `category_code`='CLOTHING' - 示例:"春夏商品" → `season_code`='SS' - 示例:"红色系" → `color_code`='RED' - **注意**:维度编码直接存储在字段中,无需外键关联。维度表作为独立数据字典提供编码-名称映射 ### 公司范围映射 - **基础信息**:公司名称、编码、简称、地址等 → `master_company`表字段 - **财务信息**:税号、银行账户、开户行等 → `master_company`表字段 - **维度筛选**:公司类型、行业、规模等 → 使用`master_company`表的type字段直接筛选 - 示例:"供应商" → `type`='SUPPLIER' - 示例:"子公司" → `type`='SUBSIDIARY' - **注意**:类型编码直接存储在字段中,无需外键关联。维度表作为独立数据字典提供编码-名称映射 ### 时间范围映射 - 所有单据表的查询日期**默认使用`sure_date`字段** - 除非用户特别说明使用其他时间字段 - `created_at`用于创建时间查询 - 主数据表使用`data_date`作为快照日期 ## 多步骤执行逻辑 复杂查询必须拆解为多个步骤执行: ### 步骤拆解顺序 1. **档案筛选步骤**:先筛选店铺、商品、公司等档案数据 2. **数据关联步骤**:将档案筛选结果与业务数据关联 3. **时间筛选步骤**:按时间范围筛选数据 4. **汇总统计步骤**:进行分组和聚合计算 ### 中间表命名规则 - 格式:`{user_id}_{datetime}_{step}_{description}` - 示例:`user123_202502071530_step1_filtered_stores` - 用户ID开头,后面跟日期时间,然后是步骤和描述 ### Doris中间表操作 - 每步查询结果保存为Doris表 - 使用CREATE TABLE AS SELECT语法 - 中间表自动管理,建议设置清理机制 ## 关键查询规则 ### 租户隔离 - 所有查询必须包含`tenant_id`条件 - 确保数据多租户隔离 ### 单据状态 - 所有单据表查询必须检查`sure_status=1` - 表示已登账的有效数据 - `bill_status`表示业务状态 ### 关联完整性 - Bill表与三张主表的关联必须正确 - 使用正确的关联字段:`company_id`、`store_id`、`product_id` ### 维度表使用 - 维度表作为独立数据字典,存储分类标准编码与名称的映射 - 主表中的维度字段(如`business_model_id`、`category_code`、`type`)直接存储维度值,无需外键关联 - 查询时可直接使用维度字段值筛选,如需获取维度名称可单独查询维度表 - 店铺维度字段存储ID值,商品和公司维度字段存储编码值 ## 表skill清单 ### 主数据表 (3个) - `master-company`:公司主数据表 - `master-store`:店铺主数据表 - `master-product`:商品资料主表 ### 单据表 (16个) - `bill-sales-retail`:零售销售单据表 - `bill-sales-wholesale`:批发销售单据表 - `bill-purchase-receipt`:采购收货单据表 - `bill-purchase-return`:采购退货单据表 - `bill-purchase-plan`:采购计划单据表 - `bill-transfer-ship`:库存调拨发货单 - `bill-transfer-receive`:库存调拨收货单 - `bill-return`:退货发货单据表 - `bill-return-receive`:退货收货单据表 - `bill-order`:订货单据表 - `bill-order-replenish`:补货单据表 - `bill-shipment`:发货单据表 - `bill-shipment-receive`:发货收货单据表 - `bill-inventory-count`:库存盘点单据表 - `bill-stock-occupation`:库存占用单据表 - `bill-presale-retail`:零售预售单据表 - `bill-presale-settlement`:预售核销单据表 ### 维度表 (3个) - `master_store_dimension`:店铺维度表 - 存储经营权模式、店铺定位、零售业态、市场层级、销售渠道、区域等分类标准 - `master_product_dimension`:商品维度表 - 存储商品大类、季节、波段、面料、颜色色系、尺码组等分类标准 - `master_company_dimension`:公司维度表 - 存储公司类型、行业、规模、区域等分类标准 ### 快照表 (1个) - `stock-store-snapshot`:日店铺库存快照表 ### 参考文件 (1个) - `init-defaults`:默认值初始化文件 - 提供维度表的默认参考数据 ## 使用说明 1. 根据查询需求选择相关的表skill加载 2. 按照查询拆解框架分析用户查询 3. 将用户条件映射到对应的档案表字段 4. 按多步骤逻辑拆解复杂查询 5. 使用中间表保存每步结果 6. 确保遵守所有查询规则 注意:时间字段默认使用`sure_date`,中间表命名使用用户ID开头加日期时间格式。