🤔 다대다 연결을 어떻게 구현하면 좋을까?
좋아요는 게시글과 사용자의 다대다 관계로 표현할 수 있다.
하지만 다대다 관계 자체를 관계형 DB안에서 그대로 구현할 수 없다.
그래서 결국 엔티티로 만들어 줘야 하는데,
학부시절 DB 수업을 들었던 기억을 살려 게시글의 PK & 사용자의 PK를 묶어 슈퍼키를 구성했다.
그런데.. 자연스레 좀 고민이 들었다.
나에게는 3가지의 옵션이 있었다.
- @ManyToMany 쓰기
ORM(JPA)에서 제공해주는 기능을 사용하면 굳이 엔티티를 정의하지 않아도 된다.
기능을 잘 사용하면 코드가 간결해지지 않을까 싶었다. - 위의 ERD와 같이 양쪽 PK를 묶어 엔티티를 설계하기
학부 전공시간에 이렇게 설계하는 것으로 배웠기 때문에 정답일 것 같다. - 양쪽 PK를 FK로만 설정한 뒤, 관계 엔티티에 독립적으로 생성되는 id키를 사용하기
테이블 설계가 변경되면 복합키도 수정해야 하는 불편함이 있을 것이다.
게다가 예시로 나온 당근마켓 클론 DB와 OKKY DB 설계를 보면 이렇게 슈퍼키를 PK로 쓰는 엔티티는 볼 수 없다.
세 가능성을 고민해보다 아래를 보고 방향을 정했다.
3번의 옵션을 선택했다.
다른 두개의 테이블에 종속되지 않고 관계 테이블에 유연하게 키를 업데이트 할 수 있다는 것이 큰 장점으로 느껴졌다.
'프로그래밍 > 기타' 카테고리의 다른 글
LocalDateTime의 약간 이상한 시간 표시 (0) | 2023.02.22 |
---|---|
백준 허브 커스터마이징 (3) | 2023.01.25 |
백준 허브 사용 후기 (0) | 2023.01.21 |
스타듀밸리 순무 모드 업데이트 0.7.0 (1) | 2023.01.18 |
1.2 IoC_DI를 위한 빈 설정 메타정보 작성 (0) | 2023.01.03 |