교차 엔티티 (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:NPost ↔️ UserPost
: 1:N User와 Post는 간접적으로 N:M 관계를 가집니다.
요약
교차 엔티티는 정규화 규칙을 지키면서 다대다 관계(N:M) 관계를 표현하기 위한 방법이다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.