-- DDL 002: 벤더사-인플루언서 매핑 테이블 인덱스 추가
-- 생성일: 2025-07-22
-- 목적: 성능 최적화를 위한 인덱스 및 제약 조건 추가

-- 1. 기본 검색용 인덱스
ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_vendor_seq` (`VENDOR_SEQ`);

ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_influencer_seq` (`INFLUENCER_SEQ`);

ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_status` (`STATUS`);

ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_request_type` (`REQUEST_TYPE`);

ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_is_active` (`IS_ACTIVE`);

-- 2. 날짜 관련 인덱스
ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_request_date` (`REQUEST_DATE`);

ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_expired_date` (`EXPIRED_DATE`);

-- 3. 복합 인덱스 (성능 최적화)
ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_vendor_status_active` (`VENDOR_SEQ`, `STATUS`, `IS_ACTIVE`);

ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD INDEX `idx_influencer_status_active` (`INFLUENCER_SEQ`, `STATUS`, `IS_ACTIVE`);

-- 4. 중복 방지를 위한 유니크 인덱스
-- 동일한 벤더사-인플루언서 조합에서 동일한 상태의 중복 방지
-- 다른 상태로는 여러 레코드 허용 (예: 이전 거절 후 재요청)
ALTER TABLE `VENDOR_INFLUENCER_MAPPING` 
ADD UNIQUE INDEX `unique_vendor_influencer_status` (`VENDOR_SEQ`, `INFLUENCER_SEQ`, `STATUS`);