더북(TheBook)

7.6.3 관계 정의하기

 

이 절에서는 users 테이블과 comments 테이블 간의 관계를 정의해보겠습니다. 사용자 한 명은 댓글을 여러 개 작성할 수 있습니다. 하지만 댓글 하나에 사용자(작성자)가 여러 명일 수는 없습니다. 이러한 관계를 일대다(一對多, 이후 1:N) 관계라고 합니다. 1:N 관계에서는 사용자가 1이고, 댓글이 N입니다.

다른 관계로 일대일, 다대다 관계가 있습니다. 일대일 관계로는 사용자와 사용자에 대한 정보 테이블을 예로 들 수 있습니다. 사용자 한 명은 자신의 정보를 담고 있는 테이블과만 관계가 있습니다. 정보 테이블도 한 사람만을 가리킵니다. 이러한 관계를 일대일(이후 1:1) 관계라고 부릅니다.

다대다 관계로는 게시글 테이블과 해시태그(#) 테이블 관계를 예로 들 수 있습니다. 한 게시글에는 해시태그가 여러 개 달릴 수 있고, 한 해시태그도 여러 게시글에 달릴 수 있습니다. 이러한 관계를 다대다(이후 N:M) 관계라고 합니다.

MySQL에서는 JOIN이라는 기능으로 여러 테이블 간의 관계를 파악해 결과를 도출합니다. 시퀄라이즈는 JOIN 기능도 알아서 구현해줍니다. 대신 시퀄라이즈에게 테이블 간에 어떠한 관계가 있는지 알려주어야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.