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 설계시 다대다 테이블을 만들어 두는것도 좋다.
'Database > RDBMS Modeling' 카테고리의 다른 글
| [MySQL] Transaction (0) | 2025.09.08 |
|---|---|
| [MyBatis] 1:N 객체 매핑 : <resultMap> <collection>, flatMap이란 (0) | 2025.09.04 |
| 다대다 관계 N:N (0) | 2025.05.16 |