1:1 관계에서 읽기 경로 단순화
같은 사용자 상세 조회라도, 프로필이 어디에 저장되느냐에 따라 읽기 비용이 달라집니다.
공통 출발점
사용자 정보 화면
에서 이름, 이메일, 소개, 아바타, 웹사이트를 한 번에 보여줘야 합니다.
정규화
프로필이 별도 테이블에 있음
데이터 역할은 분리되지만, 화면에서 함께 읽을 때는 두 테이블을 다시 합쳐야 합니다.
users
id, name, email
1:1 JOIN 필요
users.id = user_profiles.user_id
user_profiles
user_id, bio, avatar_url, website
조회 결과
사용자 상세를 읽을 때마다
JOIN으로 행을 조합
해야 합니다.
반정규화
프로필 컬럼을 users에 병합
자주 함께 읽는 1:1 관계라면, 같은 행 안에 모아 읽기 경로를 짧게 만들 수 있습니다.
users
id, name, email, bio, avatar_url, website
프로필 컬럼이 같은 사용자 행에 함께 저장됨
조회 결과
JOIN 제거
, 단일 테이블에서 바로 읽어 사용자 상세를 반환합니다.