119 lines
7.8 KiB
SQL
119 lines
7.8 KiB
SQL
CREATE TABLE gift_category (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '내부 기본키',
|
|
classification_number VARCHAR(3) NOT NULL COMMENT '신청번호에 사용하는 3자리 분류번호',
|
|
category_code VARCHAR(50) NOT NULL COMMENT '내부 범용코드',
|
|
name VARCHAR(50) NOT NULL COMMENT '분류명',
|
|
receipt_code VARCHAR(9) NOT NULL COMMENT '신청번호에 사용하는 접수코드',
|
|
representative_item VARCHAR(100) NOT NULL COMMENT '대표품목',
|
|
requires_damage_waiver TINYINT(1) NOT NULL COMMENT '파손면책 동의 필요 여부',
|
|
is_active TINYINT(1) NOT NULL COMMENT '활성 여부',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성 시각',
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정 시각',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_gift_category_classification_number (classification_number),
|
|
UNIQUE KEY uk_gift_category_code (category_code),
|
|
UNIQUE KEY uk_gift_category_receipt_code (receipt_code)
|
|
) COMMENT='선물 카테고리';
|
|
|
|
CREATE TABLE gift (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '내부 기본키',
|
|
application_no VARCHAR(40) NOT NULL COMMENT '신청번호',
|
|
sender_member_id BIGINT NOT NULL COMMENT '보내는 팬 회원번호',
|
|
recipient_member_id BIGINT NOT NULL COMMENT '받는 크리에이터 회원번호',
|
|
status VARCHAR(30) NOT NULL COMMENT '선물 상태',
|
|
size_code VARCHAR(20) NOT NULL COMMENT '선물 사이즈 코드',
|
|
category_id BIGINT NOT NULL COMMENT '신청 시 카테고리 ID',
|
|
category_name_snapshot VARCHAR(50) NOT NULL COMMENT '신청 시 카테고리명 스냅샷',
|
|
sale_price_can INT NOT NULL COMMENT '신청 시 결제 금액 스냅샷',
|
|
can_usage_id BIGINT NOT NULL COMMENT '캔 사용내역 ID',
|
|
sender_terms_agreed TINYINT(1) NOT NULL COMMENT '팬 이용약관 동의 여부',
|
|
sender_privacy_agreed TINYINT(1) NOT NULL COMMENT '팬 개인정보 동의 여부',
|
|
sender_terms_agreed_at TIMESTAMP NOT NULL COMMENT '팬 이용약관 동의 시각',
|
|
sender_privacy_agreed_at TIMESTAMP NOT NULL COMMENT '팬 개인정보 동의 시각',
|
|
recipient_terms_agreed TINYINT(1) NOT NULL COMMENT '크리에이터 이용약관 동의 여부',
|
|
recipient_privacy_agreed TINYINT(1) NOT NULL COMMENT '크리에이터 개인정보 동의 여부',
|
|
recipient_terms_agreed_at TIMESTAMP NULL COMMENT '크리에이터 이용약관 동의 시각',
|
|
recipient_privacy_agreed_at TIMESTAMP NULL COMMENT '크리에이터 개인정보 동의 시각',
|
|
damage_waiver_agreed TINYINT(1) NOT NULL COMMENT '파손면책 동의 여부',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성 시각',
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정 시각',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_gift_application_no (application_no),
|
|
CONSTRAINT fk_gift_sender_member FOREIGN KEY (sender_member_id) REFERENCES member (id),
|
|
CONSTRAINT fk_gift_recipient_member FOREIGN KEY (recipient_member_id) REFERENCES member (id),
|
|
CONSTRAINT fk_gift_category FOREIGN KEY (category_id) REFERENCES gift_category (id),
|
|
CONSTRAINT fk_gift_can_usage FOREIGN KEY (can_usage_id) REFERENCES use_can (id)
|
|
) COMMENT='선물 신청';
|
|
|
|
CREATE TABLE gift_delivery (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '내부 기본키',
|
|
gift_id BIGINT NOT NULL COMMENT '선물 ID',
|
|
sender_name VARCHAR(50) NOT NULL COMMENT '발신자 이름',
|
|
sender_phone_number VARCHAR(30) NOT NULL COMMENT '발신자 휴대폰 번호',
|
|
sender_zip_code VARCHAR(20) NOT NULL COMMENT '발신자 우편번호',
|
|
sender_address VARCHAR(255) NOT NULL COMMENT '발신자 주소',
|
|
sender_address_detail VARCHAR(255) NULL COMMENT '발신자 상세주소',
|
|
recipient_name VARCHAR(50) NULL COMMENT '수신자 이름',
|
|
recipient_phone_number VARCHAR(30) NULL COMMENT '수신자 휴대폰 번호',
|
|
recipient_zip_code VARCHAR(20) NULL COMMENT '수신자 우편번호',
|
|
recipient_address VARCHAR(255) NULL COMMENT '수신자 주소',
|
|
recipient_address_detail VARCHAR(255) NULL COMMENT '수신자 상세주소',
|
|
courier_company_name VARCHAR(50) NULL COMMENT '택배사 한글 표시명',
|
|
tracking_number VARCHAR(100) NULL COMMENT '운송장 번호',
|
|
tracking_deadline_at TIMESTAMP NOT NULL COMMENT '운송장 등록 기한',
|
|
recipient_address_deadline_at TIMESTAMP NULL COMMENT '수신자 배송지 입력 기한',
|
|
tracking_deadline_reminder_sent_at TIMESTAMP NULL COMMENT '운송장 등록 기한 안내 발송 시각',
|
|
recipient_address_deadline_reminder_sent_at TIMESTAMP NULL COMMENT '수신자 배송지 입력 기한 안내 발송 시각',
|
|
tracking_registered_at TIMESTAMP NULL COMMENT '운송장 등록 시각',
|
|
arrived_at_mailbox_at TIMESTAMP NULL COMMENT '사서함 도착 시각',
|
|
inspection_completed_at TIMESTAMP NULL COMMENT '검수완료 시각',
|
|
delivered_at TIMESTAMP NULL COMMENT '전달완료 시각',
|
|
canceled_at TIMESTAMP NULL COMMENT '취소 시각',
|
|
undeliverable_at TIMESTAMP NULL COMMENT '전달불가 시각',
|
|
undeliverable_reason VARCHAR(255) NULL COMMENT '전달불가 사유',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성 시각',
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정 시각',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_gift_delivery_gift_id (gift_id),
|
|
CONSTRAINT fk_gift_delivery_gift FOREIGN KEY (gift_id) REFERENCES gift (id)
|
|
) COMMENT='선물 배송 정보';
|
|
|
|
CREATE TABLE gift_size_price (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '내부 기본키',
|
|
size_code VARCHAR(20) NOT NULL COMMENT '선물 사이즈 코드',
|
|
base_price_can INT NOT NULL COMMENT '기본 금액',
|
|
sale_price_can INT NOT NULL COMMENT '결제 금액',
|
|
is_active TINYINT(1) NOT NULL COMMENT '활성 여부',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성 시각',
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정 시각',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_gift_size_price_size_code (size_code)
|
|
) COMMENT='선물 사이즈별 가격';
|
|
|
|
CREATE TABLE gift_review (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '내부 기본키',
|
|
gift_id BIGINT NOT NULL COMMENT '선물 ID',
|
|
sender_member_id BIGINT NOT NULL COMMENT '리뷰 작성 팬 회원번호',
|
|
rating INT NOT NULL COMMENT '별점',
|
|
keywords TEXT NULL COMMENT '리뷰 키워드 목록',
|
|
comment VARCHAR(255) NULL COMMENT '추가의견',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성 시각',
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정 시각',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_gift_review_gift_id (gift_id),
|
|
CONSTRAINT fk_gift_review_gift FOREIGN KEY (gift_id) REFERENCES gift (id),
|
|
CONSTRAINT fk_gift_review_sender_member FOREIGN KEY (sender_member_id) REFERENCES member (id)
|
|
) COMMENT='선물 리뷰';
|
|
|
|
CREATE TABLE gift_application_no_sequence (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '내부 기본키',
|
|
category_id BIGINT NOT NULL COMMENT '채번 기준 카테고리 ID',
|
|
sequence_date VARCHAR(6) NOT NULL COMMENT '채번 기준일 yyMMdd',
|
|
last_sequence INT NOT NULL COMMENT '마지막 일련번호',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성 시각',
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정 시각',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_gift_application_no_sequence_category_date (category_id, sequence_date),
|
|
CONSTRAINT fk_gift_application_no_sequence_category FOREIGN KEY (category_id) REFERENCES gift_category (id)
|
|
) COMMENT='선물 신청번호 날짜별 채번';
|