007_create_notification_table.sql 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. -- DDL 007: 알림 테이블 생성
  2. -- 생성일: 2025-07-22
  3. -- 목적: 벤더사-인플루언서 간 알림 관리
  4. CREATE TABLE `NOTIFICATION` (
  5. `SEQ` int(11) NOT NULL AUTO_INCREMENT COMMENT '기본키',
  6. `RECIPIENT_SEQ` int(11) NOT NULL COMMENT '수신자 SEQ (USER_LIST.SEQ 참조)',
  7. `SENDER_SEQ` int(11) DEFAULT NULL COMMENT '발신자 SEQ (USER_LIST.SEQ 참조)',
  8. `TYPE` varchar(50) NOT NULL COMMENT '알림 타입: PARTNERSHIP_REQUEST, PARTNERSHIP_APPROVED, PARTNERSHIP_REJECTED, PARTNERSHIP_CANCELLED, PARTNERSHIP_EXPIRED, SYSTEM_NOTICE',
  9. `TITLE` varchar(200) NOT NULL COMMENT '알림 제목',
  10. `MESSAGE` text NOT NULL COMMENT '알림 메시지',
  11. `RELATED_TYPE` varchar(50) DEFAULT NULL COMMENT '관련 테이블 타입: VENDOR_INFLUENCER_MAPPING, PARTNERSHIP_HISTORY',
  12. `RELATED_SEQ` int(11) DEFAULT NULL COMMENT '관련 테이블 SEQ',
  13. `IS_READ` varchar(1) NOT NULL DEFAULT 'N' COMMENT '읽음 상태: Y(읽음), N(안읽음)',
  14. `READ_DATE` timestamp NULL DEFAULT NULL COMMENT '읽은 일시',
  15. `PRIORITY` varchar(20) DEFAULT 'NORMAL' COMMENT '우선순위: HIGH, NORMAL, LOW',
  16. `PUSH_SENT` varchar(1) DEFAULT 'N' COMMENT '푸시 발송 여부: Y(발송), N(미발송)',
  17. `EMAIL_SENT` varchar(1) DEFAULT 'N' COMMENT '이메일 발송 여부: Y(발송), N(미발송)',
  18. `SMS_SENT` varchar(1) DEFAULT 'N' COMMENT 'SMS 발송 여부: Y(발송), N(미발송)',
  19. `EXPIRES_AT` timestamp NULL DEFAULT NULL COMMENT '만료일시',
  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. INDEX `idx_recipient_seq` (`RECIPIENT_SEQ`),
  27. INDEX `idx_sender_seq` (`SENDER_SEQ`),
  28. INDEX `idx_type` (`TYPE`),
  29. INDEX `idx_is_read` (`IS_READ`),
  30. INDEX `idx_priority` (`PRIORITY`),
  31. INDEX `idx_created_at` (`CREATED_AT`),
  32. INDEX `idx_recipient_read_created` (`RECIPIENT_SEQ`, `IS_READ`, `CREATED_AT`),
  33. INDEX `idx_related_type_seq` (`RELATED_TYPE`, `RELATED_SEQ`),
  34. CONSTRAINT `fk_notification_recipient`
  35. FOREIGN KEY (`RECIPIENT_SEQ`) REFERENCES `USER_LIST` (`SEQ`)
  36. ON DELETE CASCADE ON UPDATE CASCADE,
  37. CONSTRAINT `fk_notification_sender`
  38. FOREIGN KEY (`SENDER_SEQ`) REFERENCES `USER_LIST` (`SEQ`)
  39. ON DELETE SET NULL ON UPDATE CASCADE
  40. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='알림 테이블';