create_vendor_influencer_mapping.sql 3.2 KB

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