创建人次记录表.sql 2.48 KB
-- ============================================
-- 创建人次记录表(lq_person_times_record)
-- ============================================
-- 说明:用于记录耗卡/开单时健康师或科技老师的工作人次
-- 支持人头统计(按健康师+月份+客户去重累加)和人次统计(按健康师+日期+客户去重累加)
-- 
-- 业务场景:
-- 1. 耗卡时记录健康师或科技老师的工作人次
-- 2. 未来可能记录开单时的工作人次
-- 
-- 统计规则:
-- - 人头统计:按健康师+月份+客户去重,累加数量
-- - 人次统计:按健康师+日期+客户去重,累加数量
-- ============================================

CREATE TABLE IF NOT EXISTS `lq_person_times_record` (
  `F_Id` VARCHAR(50) NOT NULL COMMENT '主键ID',
  `F_BusinessId` VARCHAR(50) NULL COMMENT '关联业务记录ID',
  `F_BusinessType` VARCHAR(20) NULL COMMENT '业务类型(耗卡/开单)',
  `F_PersonType` VARCHAR(20) NULL COMMENT '人员类型(健康师/科技老师)',
  `F_PersonId` VARCHAR(50) NULL COMMENT '人员ID',
  `F_PersonName` VARCHAR(100) NULL COMMENT '人员姓名',
  `F_MemberId` VARCHAR(50) NULL COMMENT '客户ID',
  `F_MemberName` VARCHAR(100) NULL COMMENT '客户姓名',
  `F_WorkDate` DATE NULL COMMENT '工作日期(用于人次统计,格式:YYYY-MM-DD)',
  `F_WorkMonth` VARCHAR(6) NULL COMMENT '工作月份(用于人头统计,格式:202511)',
  `F_Quantity` DECIMAL(10,2) NULL COMMENT '数量',
  `F_CreateTime` DATETIME NULL COMMENT '创建时间',
  `F_IsEffective` INT NULL DEFAULT 1 COMMENT '是否有效',
  PRIMARY KEY (`F_Id`),
  INDEX `idx_person_month_member` (`F_PersonId`, `F_WorkMonth`, `F_MemberId`) COMMENT '人头统计索引(健康师+月份+客户)',
  INDEX `idx_person_date_member` (`F_PersonId`, `F_WorkDate`, `F_MemberId`) COMMENT '人次统计索引(健康师+日期+客户)',
  INDEX `idx_business` (`F_BusinessId`, `F_BusinessType`) COMMENT '业务查询索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人次记录表';

-- ============================================
-- 验证表结构
-- ============================================
-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, COLUMN_COMMENT 
-- FROM INFORMATION_SCHEMA.COLUMNS 
-- WHERE TABLE_NAME = 'lq_person_times_record'
-- ORDER BY ORDINAL_POSITION;

-- ============================================
-- 验证索引
-- ============================================
-- SHOW INDEX FROM lq_person_times_record;