1:1 관계(일대일 관계)
1:1 관계란 어느 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 가지는 것을 말한다.
예를 들어, 우리나라에서 결혼 제도는 일부일처제로, 한 남자는 한 여자와만 결혼을 할 수 있다.
남편 또는 부인을 2명 이상 둘 수 없는데, 이러한 관계가 1:1 관계다.
1:N 관계(일대다 관계)
1:N 관계는 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 의미한다.
예를 들어, 부모와 자식 관계를 생각해보면, 부모는 자식을 여러명 가질 수 있다.
하지만 자식 입장에서는 일반적으로 부모를 하나만 가질 수 있다.
이러한 관계를 1:N 관계라고 하며, 계층적인 구조로 이해할 수도 있다.
여러 명의 자식(N)의 입장에서 한 쌍의 부모(1)중 어떤 부모에 속해 있는지 표현해야하므로
자식 테이블에 부모 테이블의 PK를 FK로 집어 넣어 관계를 표현한다.
즉 부모 테이블(1)에서는 내 자식들이 누구인지 정보를 넣을 필요가 없고, 자식 테이블(N)에서만 각각의 자식들
이 자신의 부모 정보(FK)를 넣음 으로써 관계를 표현할 수 있다.
N:M 관계(다대다 관계)
N:M 관계는 관계를 가진 양쪽 엔티티 모두에서 1:N 관계를 가지는 것을 말한다.
즉, 서로가 서로를 1:N 관계로 보고 있는 것이다.
예를들어, 학원과 학생의 관계를 생각해보면, 한 학원에는 여러명의 학생이 수강할 수 있으므로 1:N 관계를 가진다.
반대로 학생도 여러개의 학원을 수강할 수 있으므로, 이 사이에서도 1:M 관계를 가진다.
그러므로 학원과 학생은 N:M 관계를 가진다고 할 수 있다.
N:M 관계는 서로가 서로를 1:N 관계, 1:M 관계로 갖고 있기 때문에, 서로의 PK를 자신의 외래키 컬럼으로 갖고 있으면 된다.
일반적으로 N:M 관계는 두 테이블의 대표키를 컬럼으로 갖는 또 다른 테이블을 생성해서 관리한다.
🙆♂️ 참고사이트 🙇♂️
[DB] 데이터베이스의 1:1, 1:N, N:M 관계[나다움_sparkling]
'개발자 전향 프로젝트' 카테고리의 다른 글
[Spring] 객체지향 설계 5 원칙 SOLID란? feat.클린코드 (0) | 2022.09.21 |
---|---|
[jQuery] Datatable 로 쉽게 데이터 조회하는 테이블 만들기 (0) | 2022.09.15 |
[Oracle] 계층형 쿼리 - START WITH ~ CONNECT BY (0) | 2022.09.06 |
국비학원의 현실 ( 학원 출신+ 비전공자 ) (0) | 2022.09.05 |
MyBatis vs JPA (2) | 2022.08.26 |