도메인은 예시로 들었음. 진행중인 플젝 테이블구조와 비슷하게 간소화함.
테이블 : 회원, 영상, 좋아요
좋아요 테이블은 회원PK와 영상PK를 복합키로 가짐
회원A가 영상1에 좋아요를 요청하는 경우(Create로 간주)
서비스 레이어에서
boolean 좋아요( 회원 PK, 영상 PK ) {
// 로직1 : DB를 조회해서 이 회원이 좋아요를 누를 수 있는 회원인가를 먼저 검사함.
// 요청불가한 회원이면 예외 던져서 전역 예외처리기가 예외에 맞는 응답 구성하게 함.
...
// 로직2 : 요청가능한 회원이면 실행할 로직
회원 PK + 영상 PK로 좋아요 엔티티 생성해서 insert
}
이렇게 하려는데 보다시피 '이미 좋아요를 누른 회원'인 경우엔 생성할 수 없잖아?
1. 로직1에서 좋아요 테이블에 그 회원+영상이 존재하는지도 검사한다
2. 이미 좋아요 눌렀으면 로직2에서 생성요청해도 DB가 식별자 중복으로 거부할테니까 그걸 처리한다
어떻게 하는게 맞을까
댓글 0