-- ============================================================ -- Migration: 영상 댓글 테이블 추가 -- Date: 2026-05-21 -- Description: 영상 상세 페이지 댓글/대댓글 기능 (2-depth, 소프트 삭제) -- ============================================================ CREATE TABLE IF NOT EXISTS comment ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '고유 식별자', video_id INT NOT NULL COMMENT '연결된 Video의 id', user_uuid VARCHAR(36) NOT NULL COMMENT '작성자 UUID (user.user_uuid 참조, 응답 미노출)', nickname VARCHAR(20) NULL COMMENT '작성자 닉네임 (null이면 익명으로 표시)', parent_id BIGINT NULL COMMENT 'NULL=최상위 댓글, 값=대댓글의 부모 id', content VARCHAR(100) NOT NULL COMMENT '댓글 본문 (한글 기준 100자 이내)', is_deleted BOOLEAN NOT NULL DEFAULT FALSE COMMENT '소프트 삭제 여부', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '작성 일시', PRIMARY KEY (id), CONSTRAINT fk_comment_video FOREIGN KEY (video_id) REFERENCES video(id) ON DELETE CASCADE, CONSTRAINT fk_comment_user FOREIGN KEY (user_uuid) REFERENCES `user`(user_uuid) ON DELETE CASCADE, CONSTRAINT fk_comment_parent FOREIGN KEY (parent_id) REFERENCES comment(id) ON DELETE CASCADE, INDEX idx_comment_video_id (video_id), INDEX idx_comment_user_uuid (user_uuid), INDEX idx_comment_parent_id (parent_id), INDEX idx_comment_is_deleted (is_deleted) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='영상 댓글/대댓글';