ㅤ
ㅤ
ㅤ
- 두 개의 테이블 A와 B가 있으면 A의 레코드 하나가 B의 레코드 하나와 연결된 관계
(ex: 한 사람의 주민등록번호와 여권 번호의 경우)- (상품 테이블) 1 : 1 (카테고리 테이블)
➡️ Association
➡️ 상품은 카테고리 1개를 반드시 가지고 있음
- 일대일 관계는 애초부터 하나의 테이블로 표현하는 경우가 많음.
- 테이블 A의 레코드 하나가 B의 레코드 여러 개와 연결된 관계
(ex: 한 사람이 여러 채의 아파트를 가진 경우)- (상품 테이블) 1 : N (상품 이미지 테이블)
➡️ Collection
➡️ 카테고리는 상품을 여러개 가지고 있음
➡️ mybatis 기능 사용
- 테이블 A의 레코드 하나가 B의 레코드 여러 개와, 테이블 B의 레코드 하나가 A의 레코드 여러 개와 연결된 관계
(ex: 대형마트의 고객과 판매 물품 간의 관계)
- 다대다 관계를 위처럼 표현할 수는 있으나, 실제로는 구현할 수 없음
- 프로그래밍으로 풀이 불가
- 구현하려고 하면 한 고객의 구매 물품 번호에 여러 개의 값을 넣어야 할 수도 있는데, 이는 데이터베이스 제1 정규화를 깨뜨림.
- 이런 이유로 실제로는 두 테이블 사이를 연결해주는 >>별도의 테이블<<을 만들어서 다대다 관계를 두 개의 일대다 관계로 풀어줌.
- 이 별도의 테이블을 '교차 엔티티'라고 함.
- (고객 테이블) N : M (주문 상품)
ㅤ
ㅤ
ItemVO(itemCode=4
, itemName=홍콩마카오
, itemPrice=22000
, itemStock=0
, itemIntro=마카오박 카카오박
, regDate=null
, cateCode=0
, imgList=[ImgVO(imgCode=0
, originFileName=null
, attachedFileName=1b0e8649-4e69-4b45-bbf4-921d1e62c0e7.jpg
, isMain=null
, itemCode=4),
ImgVO(imgCode=0
, originFileName=null
, attachedFileName=ae9a7c06-584d-4156-bde0-e7b23452baf3.jpg
, isMain=null
, itemCode=4),
ImgVO(imgCode=0
, originFileName=null
, attachedFileName=ab3fa2e0-d04d-4a95-868f-8ca852704bd5
.jpg, isMain=null
, itemCode=4)])
ㅤ
🔍참고
- https://velog.io/@auddwd19/02.RDB [벨로그 : hwang.log]
- https://seahahn.tistory.com/89 [티스토리 : 세상, 나 그리고 개발]