7.6.3 관계 정의하기
이 절에서는 users 테이블과 comments 테이블 간의 관계를 정의해보겠습니다. 사용자 한 명은 댓글을 여러 개 작성할 수 있습니다. 하지만 댓글 하나에 사용자(작성자)가 여러 명일 수는 없습니다. 이러한 관계를 일대다(一對多)(이하 1:N) 관계라고 합니다. 1:N 관계에서는 사용자가 1이고, 댓글이 N입니다.
다른 관계로 일대일, 다대다 관계가 있습니다. 일대일 관계로는 사용자와 사용자에 대한 정보 테이블을 예로 들 수 있습니다. 사용자 한 명은 자신의 정보를 담고 있는 테이블과만 관계가 있습니다. 정보 테이블도 한 사람만을 가리킵니다. 이러한 관계를 일대일(이후 1:1) 관계라고 합니다.
다대다 관계로는 게시글 테이블과 해시태그(#) 테이블 관계를 예로 들 수 있습니다. 한 게시글에는 해시태그가 여러 개 달릴 수 있고, 한 해시태그도 여러 게시글에 달릴 수 있습니다. 이러한 관계를 다대다(이후 N:M) 관계라고 합니다.
MySQL에서는 JOIN이라는 기능으로 여러 테이블 간의 관계를 파악해 결과를 도출합니다. 시퀄라이즈는 JOIN 기능도 알아서 구현합니다. 대신 테이블 간에 어떠한 관계가 있는지 시퀄라이즈에 알려야 합니다.