게시판을 구현할 때, 태그 기능이 들어간다고 가정. RDB 사용


요구사항은 아래와 같음.


1. 게시글을 등록할 때 해시태그를 사용해 태그를 작성할 수 있다.

2. 한 게시글에서 동일한 해시태그를 2번 이상 사용할 수 있으며 둘 다 유효하다.

3. 등록된 전체 태그 목록을 조회할 수 있어야 한다.(중복X)

4. 각 태그가 사용된 게시글 목록을 조회할 수 있어야 한다.


인스타그램이나 페이스북, 트위터에 있는 해시태그 기능이랑 비슷


가장 간단한건

1. Tag(태그목록) 테이블을 만들고 태그를 해당 테이블에 등록(이미 있을 경우 등록하지 않음)

2. Board(게시글) 테이블의 PK와 Tag(태그목록) PK을 매핑해주는 TagMap과 같은 별도의 테이블 생성


근데 이런 구조는 결국 N:M 관계를 N<-->ㅁ<-->M 느낌으로 풀어낸거고 실무에선 N:M 쓰지말라는데


이걸 어떻게 설계하는게 가장 바람직함?


RDB론 답 없음?