-- ============================================ -- 创建合同成本按月统计表(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条记录)