创建大项目部老师归属设置表.sql 3.25 KB
-- ============================================
-- 创建大项目部老师归属设置表
-- 功能:存储各门店每月的大项目部老师归属设置
-- 创建时间:2025年
-- ============================================

-- 删除表(如果存在)
DROP TABLE IF EXISTS lq_md_major_project_teacher_assignment;

-- ============================================
-- 创建大项目部老师归属设置表
-- ============================================
CREATE TABLE lq_md_major_project_teacher_assignment (
    -- 主键
    F_Id VARCHAR(50) NOT NULL COMMENT '主键ID',
    -- 基本信息
    F_StoreId VARCHAR(50) NOT NULL COMMENT '门店ID',
    F_Year VARCHAR(4) NOT NULL COMMENT '年份(YYYY格式)',
    F_Month VARCHAR(2) NOT NULL COMMENT '月份(MM格式)',
    F_TeacherId VARCHAR(50) NOT NULL COMMENT '大项目部老师用户ID',
    -- 备注说明
    F_Remark TEXT NULL COMMENT '备注说明',
    -- 审计字段
    F_CreateTime DATETIME NULL COMMENT '创建时间',
    F_CreateUserId VARCHAR(50) NULL COMMENT '创建人ID',
    F_UpdateTime DATETIME NULL COMMENT '更新时间',
    F_UpdateUserId VARCHAR(50) NULL COMMENT '更新人ID',
    -- 主键约束
    PRIMARY KEY (F_Id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='门店大项目部老师归属设置表';

-- ============================================
-- 创建索引
-- ============================================

-- 门店ID + 年份 + 月份 + 老师ID唯一索引(同一门店同一年份同一月份同一老师只能有一条记录)
CREATE UNIQUE INDEX idx_store_year_month_teacher ON lq_md_major_project_teacher_assignment(F_StoreId, F_Year, F_Month, F_TeacherId);

-- 门店ID索引(查询某个门店的所有设置)
CREATE INDEX idx_store_id ON lq_md_major_project_teacher_assignment(F_StoreId);

-- 年份索引(查询某年的所有设置)
CREATE INDEX idx_year ON lq_md_major_project_teacher_assignment(F_Year);
-- 月份索引(查询某个月份的所有设置)
CREATE INDEX idx_month ON lq_md_major_project_teacher_assignment(F_Month);
-- 年份+月份组合索引(查询某年某月的所有设置)
CREATE INDEX idx_year_month ON lq_md_major_project_teacher_assignment(F_Year, F_Month);

-- 老师ID索引(查询某个老师的所有门店设置)
CREATE INDEX idx_teacher_id ON lq_md_major_project_teacher_assignment(F_TeacherId);

-- ============================================
-- 表结构说明
-- ============================================
/*
业务规则:
1. 同一门店同一年份同一月份同一老师只能有一条归属设置记录
2. 年份格式为YYYY(如:2025表示2025年)
3. 月份格式为MM(如:01表示1月)
4. 一个门店在一个月份可以有多个老师(通过多条记录实现)
5. 一个门店在一个月份也可以没有老师(不创建记录即可)
6. 老师ID关联BASE_USER.F_Id
7. 门店ID关联lq_mdxx.F_Id

字段说明:
- F_Id: 主键,使用YitIdHelper生成
- F_StoreId: 门店ID,关联lq_mdxx表
- F_Year: 年份,格式YYYY(如:2025)
- F_Month: 月份,格式MM(如:01表示1月)
- F_TeacherId: 大项目部老师用户ID,关联BASE_USER表
- F_Remark: 备注说明(可选)
- F_CreateTime/F_CreateUserId: 创建时间和创建人
- F_UpdateTime/F_UpdateUserId: 更新时间和更新人
*/