포스트

교차 엔티티 (Intersection Entity)

안녕하세요 🐸

오늘은 교차 엔티티(Intersection Entity) 에 대해 정리해보겠습니다.

교차 엔티티 (Intersection Entity)

RDB 에서는 직접적으로 테이블간의 N:M 관계를 표현할 수 없습니다.
데이터 정규화 원칙을 지키지 않는다면 억지로는 가능하겠지만 그렇게 할 이유도 없습니다.
이 문제를 해소하기 위해서 사용하는 것이 교차 엔티티 입니다.

교차 엔티티 구조

교차 엔티티는 N:M 관계를 중간 테이블을 통해 1:N 관계로 쪼개서 표현합니다.
중간 테이블의 역할을 하는 것을 교차 엔티티라고 부릅니다.

아래의 구조를 가지는 3개의 테이블이 있다고 가정하겠습니다.

사용자(User)게시글(Post)좋아요(UserPost)
user_id (PK)post_id (PK)id (PK)
  user_id (FK)
  post_id (FK)
  liked_at

좋아요 테이블을 기준으로

  • User ↔️ UserPost : 1:N
  • Post ↔️ UserPost : 1:N User와 Post는 간접적으로 N:M 관계를 가집니다.

요약

교차 엔티티는 정규화 규칙을 지키면서 다대다 관계(N:M) 관계를 표현하기 위한 방법이다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.