SQL과 DB
연관관계 매핑 : 1대1, 1대다 다대1, 다대다
wintertreey
2025. 6. 30. 12:35
1대1
아주 기본적인 관계. 설명 생략.
1대다
관리자 | 아파트 |
A | 1, 2 |
B | 3, 4 |
이럴때는 아파트 테이블에 관리자 id를 FK로 둔다.
다대1
관리자 | 아파트 |
A, B | 1 |
C, D | 2 |
이럴때는 관리자 테이블에 아파트 id를 FK로 둔다.
다대다
관리자 | 아파트 |
A | 1, 2, 3 |
B | 2, 3, 4 |
관리자 A의 입장에서 보면, 아파트 1,2,3을 관리.
아파트 2의 입장에서 보면, 관리자 A, B가 담당.
이처럼 다대다관계가 될 때, 이 두 테이블의 연관관계를 담은 테이블을 만들게 된다.
UK | 관리자 | 아파트 |
1 | A | 1 |
2 | A | 2 |
4 | A | 3 |
5 | B | 2 |
6 | B | 3 |
7 | B | 4 |
이 테이블에 필수적으로 들어가야 하는 사항은 관리자와 아파트간의 매핑사실을 담은 칼럼.
편의성을 위해 auto increment를 담은 uk 칼럼정도를 만들 수 있다.
그 외에 상황에 따라, 관리권한을 기간별로 줄 수 있도록, 시작시간과 해제시간 칼럼을 넣는 등 부가적인 칼럼을 추가할 수 도 있다.
매핑 관계를 담은 테이블은 비단 다대다일때에만 만드는것은 아니다. 현재 기준 설계를 할때엔 1대다 관계일지라도 추후 설계에 변동 및 확장 가능성이 있다면, 미리 DB 설계시 다대다 테이블을 만들어 두는것도 좋다.