-- 1. 取消 file_path 的唯一约束，保留列
ALTER TABLE bag_file DROP INDEX `file_path`;

-- 2. 为 file_name 建索引（用于 join / like 查询）
ALTER TABLE bag_file
  ADD INDEX `idx_bag_file_name` (`file_name`);

-- 3. 为 bag_update_time 建索引（用于 “每个 logical_name 取最新一条” 的子查询）
ALTER TABLE bag_file
  ADD INDEX `idx_bag_update_time` (`bag_update_time`);

ALTER TABLE bag_file
  ADD INDEX `idx_create_time` (`create_time`);

-- 4. 为 bag_status 建索引
ALTER TABLE bag_file
  ADD INDEX idx_bag_status (bag_status);


-- ============================
-- Table structure for bag_merge_record
-- ============================
create table bag_merge_record
(
    id           int(11) unsigned auto_increment comment '主键'
        primary key,
    joined_name  varchar(255)                         not null comment '合并后 bag 名称（joined_name）',
    src_name     varchar(255)                         not null comment '参与合并的原始 bag 名称',
    create_time  datetime   default CURRENT_TIMESTAMP not null comment '记录创建时间',
    created_by   int                                  null comment '操作用户 id',
    is_initiator tinyint(1) default 0                 not null comment '1: 此 src 是本次合并的主 bag',
    constraint fk_bag_merge_created_by
        foreign key (created_by) references users (id)
            on update cascade on delete set null
)
    row_format = DYNAMIC;
create index idx_created_by
    on bag_merge_record (created_by);
create index idx_joined_name
    on bag_merge_record (joined_name);
create index idx_src_name
    on bag_merge_record (src_name);
