1.3 회원테이블분석
Member 테이블
Member_ID
NAME
|CITY : VALUE TYPE/임베디드 타입 그대로 필드로 내려온 것이다.
|STREET : VALUE TYPE/임베디드 타입 그대로 필드로 내려온 것이다.
|ZIPCODE : VALUE TYPE/임베디드 타입 그대로 필드로 내려온 것이다.
설명
-1:1 맵핑이다.
-이름과 임베디드 타입인 주소(Address), 그리고 주문(orders) 리스트를 가진다.
Delivery 테이블
Delivery_ID
STATUS
CITY : VALUE TYPE/임베디드 타입 그대로 필드로 내려온 것이다.
STREET : VALUE TYPE/임베디드 타입 그대로 필드로 내려온 것이다.
ZIPCODE : VALUE TYPE/임베디드 타입 그대로 필드로 내려온 것이다.
설명
-회원 엔티티의 Address 임베디드 타입 정보가 회원 테이블에 그대로 들어갔다.
이것은 DELIVERY 테이블도 마찬가지다.
ITEM 테이블
ITEM_ID(상품 ID)
-상속관계 맵핑 기본편에서 설명한 3가지 전략중 가장 단순한 싱글테이블 전략을 사용했다.
싱글테이블전략은 한테이블에 DTYPE으로 구분해서 다 넣는다.
일반적으로 성능이 잘 나온다.
-단점이라하면 필드에 ARTIST,ETC,AUTHOR,ISBN,DIRECTOR,ACTOR 전부 섞여서 싱글테
이블에 들어간다.
-앨범, 도서, 화 타입을 통합해서 하나의 테이블로 만들었다. DTYPE 컬럼으로 타입을 구분한
다.
Orders 테이블
ORDER_ID (주문 ID)
MEMBER_ID (Foreign Key, 회원 ID)
DELIVERY_ID (Foreign Key, 배송 ID)
참고
-테이블명이 ORDER가 아니라 ORDERS인 것은 데이터베이스가 order by 때문에 예약어로 잡고 있는 경우가 많다.
그래서 관례상 ORDERS를 많이 사용한다.
주문상품테이블
주문상품 ORDER_ITEM
ORDER_ITEM_ID
ORDER_ID (FK)
ITEM_ID (FK)
ORDERPRICE (주문한 상품가격)
COUNT (주문한 상품 개수)
카테고리(CATEGORY)
CATEGORY_ID
PARENT_ID (FK)
NAME
CATEGORY_ITEM
CATEGORY_ID (FK)
ITEM_ID (FK)
설명
-객체에서는 카테고리가 아이템리스트를 가져도 되고
아이템이 카테고리리스트를 가져도 된다.
양쪽 컬렉션을 만들면 객체는 다대 다로 만들 수 있지만
관계형데이터베이스는 일반적 설계로는 그렇게 할 수 없다.
중간에 매핑 테이블(CATEGORY_ITEM)을 두어,
1대(CATEGORY) 다(CATEGORY_ITEM) 관계 및 다대(CATEGORY_ITEM) 1(ITEM)로 풀어
낸다.
참고
*강의에서는 객체를 구분하기 위해 DB에 대문자를 사용했다.
-실제 코드에서는 DB에 소문자 + _(언더스코어) 스타일을 사용하겠다.
-데이터베이스 테이블명, 컬럼명에 대한 관례는 회사마다 다르다.
보통은 대문자 + _(언더스코어)나 소문자 + _(언더스코어) 방식 중에 하나를 지정해서
일관성 있게 사용한다. 강의에서 설명할 때는 객체와 차이를 나 타내기 위해 데이터베이스
테이블, 컬럼명은 대문자를 사용했지만, 실제 코드에서는 소문자 + _(언더스코 어) 스타일을
사용하겠다.
'신입개발자로 취업하기까지 > JPA쇼핑몰기능구축' 카테고리의 다른 글
20200509 도메인분석설계_엔티티클래스 개발 1-1 (0) | 2020.05.23 |
---|---|
20200506 도메인분석설계_도메인모델과 테이블설계_2-4 (0) | 2020.05.19 |
20200505 도메인분석설계_도메인모델과 테이블설계_2-2 (0) | 2020.05.17 |
20200505 도메인분석설계_도메인모델과 테이블설계_2-1 (0) | 2020.05.12 |
20200505 도메인분석설계_요구사항분석_1 (0) | 2020.05.11 |