-- 벤더사-인플루언서 승인 매핑 테이블 CREATE TABLE `VENDOR_INFLUENCER_MAPPING` ( `SEQ` int(11) NOT NULL AUTO_INCREMENT, `VENDOR_SEQ` int(11) NOT NULL COMMENT '벤더사 SEQ (VENDOR_LIST.SEQ 참조)', `INFLUENCER_SEQ` int(11) NOT NULL COMMENT '인플루언서 SEQ (USER_LIST.SEQ 참조)', `REQUEST_TYPE` varchar(20) NOT NULL DEFAULT 'INFLUENCER_REQUEST' COMMENT '요청 타입: INFLUENCER_REQUEST(인플루언서 요청), VENDOR_INVITE(벤더사 초대)', `STATUS` varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '승인 상태: PENDING(대기), APPROVED(승인), REJECTED(거절), CANCELLED(취소)', `REQUEST_MESSAGE` text DEFAULT NULL COMMENT '요청 메시지', `RESPONSE_MESSAGE` text DEFAULT NULL COMMENT '응답 메시지', `REQUESTED_BY` int(11) NOT NULL COMMENT '요청자 SEQ', `APPROVED_BY` int(11) DEFAULT NULL COMMENT '승인자 SEQ', `REQUEST_DATE` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '요청일시', `RESPONSE_DATE` timestamp NULL DEFAULT NULL COMMENT '응답일시', `EXPIRED_DATE` timestamp NULL DEFAULT NULL COMMENT '만료일시', `PARTNERSHIP_START_DATE` timestamp NULL DEFAULT NULL COMMENT '파트너십 시작일', `PARTNERSHIP_END_DATE` timestamp NULL DEFAULT NULL COMMENT '파트너십 종료일', `COMMISSION_RATE` decimal(5,2) DEFAULT NULL COMMENT '수수료율 (%)', `SPECIAL_CONDITIONS` text DEFAULT NULL COMMENT '특별 조건', `IS_ACTIVE` varchar(1) NOT NULL DEFAULT 'Y' COMMENT '활성 상태: Y(활성), N(비활성)', `CREATED_AT` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', `UPDATED_AT` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '수정일시', `ADD_INFO1` varchar(500) DEFAULT NULL COMMENT '추가정보1', `ADD_INFO2` varchar(500) DEFAULT NULL COMMENT '추가정보2', `ADD_INFO3` varchar(500) DEFAULT NULL COMMENT '추가정보3', PRIMARY KEY (`SEQ`), UNIQUE KEY `unique_vendor_influencer` (`VENDOR_SEQ`, `INFLUENCER_SEQ`, `STATUS`), KEY `idx_vendor_seq` (`VENDOR_SEQ`), KEY `idx_influencer_seq` (`INFLUENCER_SEQ`), KEY `idx_status` (`STATUS`), KEY `idx_request_type` (`REQUEST_TYPE`), KEY `idx_is_active` (`IS_ACTIVE`), KEY `idx_request_date` (`REQUEST_DATE`), CONSTRAINT `fk_vendor_mapping` FOREIGN KEY (`VENDOR_SEQ`) REFERENCES `VENDOR_LIST` (`SEQ`) ON DELETE CASCADE, CONSTRAINT `fk_influencer_mapping` FOREIGN KEY (`INFLUENCER_SEQ`) REFERENCES `USER_LIST` (`SEQ`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='벤더사-인플루언서 승인 매핑 테이블'; -- 인덱스 추가 설명 -- unique_vendor_influencer: 동일한 벤더사-인플루언서 조합에서 동일한 상태의 중복 방지 -- 다른 상태로는 여러 레코드 허용 (예: 이전 거절 후 재요청) -- 샘플 데이터 (테스트용) -- INSERT INTO `VENDOR_INFLUENCER_MAPPING` -- (`VENDOR_SEQ`, `INFLUENCER_SEQ`, `REQUEST_TYPE`, `STATUS`, `REQUEST_MESSAGE`, `REQUESTED_BY`) -- VALUES -- (1, 1, 'INFLUENCER_REQUEST', 'PENDING', '귀하의 제품에 관심이 있어 파트너십을 요청합니다.', 1), -- (1, 2, 'VENDOR_INVITE', 'APPROVED', '저희 브랜드와 함께 해주세요.', 1), -- (2, 1, 'INFLUENCER_REQUEST', 'REJECTED', '협업 요청드립니다.', 1);