Blame view

项目文档相关/sql/创建人次记录表.sql 2.48 KB
d8035736   “wangming”   Refactor project ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  -- ============================================
  -- 创建人次记录表(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;