앞서 유연성과 확장성 측면에서 비식별 관계가 유리하다는 것을 봤다. 이번에는 SQL 작성과 성능 관점에서 두 관계를 비교한다.
요구사항: "특정 댓글 한 건의 내용을 조회하라."
비식별 관계
-- comment_id가 500번인 댓글 조회
SELECT content
FROM comment_non_identifying
WHERE comment_id = 500;
식별 관계
-- 10번 게시글의 3번째 댓글 조회
SELECT content
FROM comment_identifying
WHERE board_id = 10
AND comment_no = 3;
식별 관계 구조에서는 손자 테이블에 조상 PK가 그대로 내려오므로, 조인 없이 조회할 수 있는 경우가 있다.
reply_identifying 테이블에 board_id가 있으므로 board_id=1인 모든 대댓글을 찾을 때 조인이 필요 없다.비식별 관계에서는 조인이 필요하지만, 각 인덱스가 단순하고, 구조가 유연하다.
1) API·URL 설계
/comments/500처럼 댓글을 독립적인 자원(Resource)으로 다루기 쉽다./boards/10/comments/3처럼 부모 정보를 항상 함께 가져가야 하는 구조가 된다.2) 코드 단순성