게임에는 여러 장르가 있다. 스포츠, 공포, 생존 등... 그리고 보통은 한 게임에 여러 개의 장르를 설정한다. 예를 들어 P의 거짓이라는 게임은 '소울라이크, 액션, 탐험, 액션 RPG' 4개의 장르를 가지고 있다.
처음에는 game - genre 두 테이블을 연결하는 game_genre 와 같은 매핑 테이블이 필요할 것이라고 생각을 했다.
이전에 4일짜리 단기 토이프로젝트(Spring 사용)를 할 때 DB를 처음 설계해보면서 '매핑 테이블' 이라는 개념에 대해서 어렴풋이 알게됐는데... 이번에 Spring boot를 사용하면서 JPA를 배우다보니 매핑 테이블을 어떻게 해야하는가에 대해 고민을 많이 했다.
Spring boot로 만들어진 프로젝트를 7개정도 분석을 해보니 매핑 테이블을 직접 만드는 경우가 많았고(그리고 패키지별로 분류를 해서 깔끔하게 정리를 해놓으니 정말 보기 좋아서 참고할 것임! ), @ManyToMany를 쓰는 프로젝트도 있었다...!?
그러다가 어떤 한 프로젝트는 당근마켓을 클론한 프로젝트였는데 상품에 대한 카테고리를 Enum class로 분류를 해둔 것을 봤다.
어? 이거 내가 하려는 프로젝트에도 적용할 수 있겠는데? 라는 생각이 들어 Enum에 대해서 더 검색을 해봤다.
그냥 테이블 다 만들자!!!! 😂