Skip to content

[Fix] 동아리 테이블 및 엔티티 구조 개선 #352

@coderabbitai

Description

@coderabbitai

개요

동아리 기능 관련 데이터베이스 스키마와 엔티티 구조에서 발견된 두 가지 개선 사항을 정리합니다.


1. 중복 인덱스 제거

위치

  • 파일: src/main/resources/db/migration/V260206__Create_club_table.sql
  • 라인: 36-39

문제점

club_subscribe 테이블에 uk_club_user 유니크 제약조건이 (club_id, user_id) 복합 인덱스를 생성하므로, club_id 단독 조회 시 이 인덱스의 왼쪽 접두사를 활용할 수 있습니다. 따라서 별도로 생성된 idx_club_subscribe_club 인덱스는 불필요한 중복입니다.

개선 방안

SQL 마이그레이션에서 INDEX idx_club_subscribe_club 항목을 제거하고, INDEX idx_club_subscribe_userCONSTRAINT uk_club_user는 그대로 유지합니다.


2. Club 엔티티의 Cascade 설정 추가

위치

  • 파일: src/main/java/com/kustacks/kuring/club/domain/Club.java
  • 라인: 47-48

문제점

Club 엔티티의 homepageUrls 필드(List<ClubSns>)에 cascade 및 orphan removal 설정이 없습니다. club_sns 테이블의 club_id 외래키는 NOT NULL 제약이 있어, Club 엔티티 삭제 시 적절한 cascade 옵션이 없으면 ClubSns 레코드가 고아 상태가 되어 외래키 제약 조건 위반이 발생할 수 있습니다.

개선 방안

Club 엔티티가 ClubSns의 생명주기를 관리하도록 @OneToMany 어노테이션에 다음을 추가합니다:

  • cascade = CascadeType.REMOVE (또는 CascadeType.ALL)
  • orphanRemoval = true

참고

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions