-- ============================================
-- 创建大项目部老师归属设置表
-- 功能：存储各门店每月的大项目部老师归属设置
-- 创建时间：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: 更新时间和更新人
*/
