[Independe] 추천, 신고, 즐겨찾기 DB 설계에 대한 고민
자취생 커뮤니티 개발을 하며 게시글, 댓글에 대해 추천, 신고, 즐겨찾기와 같은 요구사항이 발생했다. 처음엔 해당 기능들은 다 게시글과 1 : N 관계로 구축하면 되겠다고 쉽게 생각했다. 하지만 1 : N으로 맵핑한 뒤 구현을 할 수록 이상함이 느껴졌다. 추천은 '회원이 게시글을 추천한다' 그렇다면 추천이라는 테이블엔 회원, 게시글에 대한 정보가 모두 존재해야 한다. 또한, 한명의 회원은 여러개의 게시글에 추천을 할 수 있고 하나의 게시글 또한 여러명의 회원에게 추천을 받을 수 있다. 즉 1 : N이 아닌 N : M 다대다 관계로 구축해야 했다. 이 다음 발생한 고민이 추천, 신고, 즐겨찾기는 결국 boolean 값으로 isRecommend, isReport, isFavorite과 같이 컬럼에 저장되는데..