创建人次记录表.sql
2.48 KB
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
48
-- ============================================
-- 创建人次记录表(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;