-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
개요
동아리 기능 관련 데이터베이스 스키마와 엔티티 구조에서 발견된 두 가지 개선 사항을 정리합니다.
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_user 및 CONSTRAINT 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
참고
- PR: version 2.17.1 #349
- 중복 인덱스 관련 코멘트: version 2.17.1 #349 (comment)
- Cascade 설정 관련 코멘트: version 2.17.1 #349 (comment)
- 보고자: @rlagkswn00
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels