创建合同成本按月统计表.sql 3.73 KB
-- ============================================
-- 创建合同成本按月统计表(lq_contract_monthly_cost)
-- ============================================
-- 说明:用于按月统计每个合同的成本,便于后续统计和查询
-- 
-- 业务逻辑:
-- 1. 根据合同起始日期、结束日期,按月生成成本记录
-- 2. 每个月成本 = 缴租金额 / 交租周期
-- 3. 例如:合同一年,交费周期3个月,缴租金额3000元
--    - 每个月成本 = 3000 / 3 = 1000元
--    - 生成12个月的记录,每个月都是1000元
-- 
-- 字段说明:
-- F_Month:统计月份(格式:YYYY-MM-01,表示该月的第一天)
-- F_MonthlyCost:该月的合同成本(缴租金额 / 交租周期)
-- 
-- 索引设计:
-- - 主键:F_Id
-- - 合同ID索引:F_ContractId(用于查询某个合同的所有月份成本)
-- - 月份索引:F_Month(用于按月份统计)
-- - 门店ID索引:F_StoreId(用于按门店统计)
-- - 联合索引:(F_StoreId, F_Month) - 用于查询某个门店某个月的成本
-- - 联合索引:(F_ContractId, F_Month) - 用于查询某个合同某个月的成本

CREATE TABLE IF NOT EXISTS `lq_contract_monthly_cost` (
  `F_Id` VARCHAR(50) NOT NULL COMMENT '主键ID',
  `F_ContractId` VARCHAR(50) NOT NULL COMMENT '合同ID(关联lq_contract.F_Id)',
  `F_StoreId` VARCHAR(50) NOT NULL COMMENT '门店ID(关联lq_mdxx.F_Id,冗余字段便于查询)',
  `F_StoreName` VARCHAR(200) NOT NULL COMMENT '店名(冗余字段,便于查询)',
  `F_Category` VARCHAR(100) DEFAULT NULL COMMENT '分类(冗余字段,便于按分类统计)',
  `F_Month` DATETIME NOT NULL COMMENT '统计月份(格式:YYYY-MM-01,表示该月的第一天)',
  `F_MonthlyCost` DECIMAL(18,2) NOT NULL COMMENT '该月的合同成本(缴租金额 / 交租周期)',
  `F_PaymentCycle` INT NOT NULL COMMENT '交租周期(冗余字段,便于查询)',
  `F_PaymentAmount` DECIMAL(18,2) NOT NULL COMMENT '缴租金额(冗余字段,便于查询)',
  `F_IsEffective` INT DEFAULT 1 COMMENT '是否有效(1-有效,0-无效)',
  `F_CreateUser` VARCHAR(50) NOT NULL COMMENT '创建人ID',
  `F_CreateTime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `F_UpdateTime` DATETIME DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`F_Id`),
  KEY `idx_contract_id` (`F_ContractId`) COMMENT '合同ID索引',
  KEY `idx_month` (`F_Month`) COMMENT '月份索引',
  KEY `idx_store_id` (`F_StoreId`) COMMENT '门店ID索引',
  KEY `idx_category` (`F_Category`) COMMENT '分类索引',
  KEY `idx_store_month` (`F_StoreId`, `F_Month`) COMMENT '门店+月份联合索引',
  KEY `idx_contract_month` (`F_ContractId`, `F_Month`) COMMENT '合同+月份联合索引',
  KEY `idx_category_month` (`F_Category`, `F_Month`) COMMENT '分类+月份联合索引',
  KEY `idx_is_effective` (`F_IsEffective`) COMMENT '是否有效索引',
  KEY `idx_create_time` (`F_CreateTime`) COMMENT '创建时间索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='合同成本按月统计表';

-- ============================================
-- 数据示例说明
-- ============================================
-- 合同示例:
-- F_ContractId: '768041985045955845'
-- F_StoreId: '1649328471923847168'
-- F_StoreName: '绿纤总部'
-- F_ContractStartDate: '2025-01-01 00:00:00'
-- F_ContractEndDate: '2025-12-31 23:59:59'
-- F_PaymentAmount: 3000.00
-- F_PaymentCycle: 3
-- 
-- 每个月成本 = 3000 / 3 = 1000元
-- 
-- 对应的成本记录(自动生成):
-- 记录1: F_Month='2025-01-01', F_MonthlyCost=1000.00
-- 记录2: F_Month='2025-02-01', F_MonthlyCost=1000.00
-- 记录3: F_Month='2025-03-01', F_MonthlyCost=1000.00
-- 记录4: F_Month='2025-04-01', F_MonthlyCost=1000.00
-- ...(共12条记录)