2-1. 도메인모델과 테이블 설계
a.회원, 주문, 상품의 관계
-회원은 여러 상품을 주문할 수 있다. 그리고 한 번 주문할 때 여러 상품을 선택할 수 있기에 주문과 상품은 다대다 관계
-하지만 이런 다대다 관계는 관계형 데이터베이스는 물론이고 엔티 티에서도 거의 사용하지 않는다.
-따라서 그림처럼 주문상품이라는 엔티티를 추가해서 다대다 관계를 일대 다, 다대 일 관계로 풀어냈다.
상품 분류
-상품은 도서, 음반, 화로 구분되는데 상품이라는 공통 속성을 사용하므로 상속 구조로 표현했 다.
b.회원과 주문 관계
-회원은 여러 주문을 할 수 있어서 회원과 주문의 관계는 1대 다의 관계이다.
c.회원과 주문, 주문과 상품 관계
-회원이 한번 주문할 때 여러개의 상품을 주문할 수 있다.
-상품도 여러 주문에 담길 수 있으면 다대 다 관계가 된다.
-하지만 이런 다대다 관계는 관계형 데이터베이스는 물론이고 엔티티에서도 거의 사용하지 않는다.
-그래서 1대 다 다 대 1의 관계 관계로 만들기 위해
그림처럼 주문상품(테이블+주문수량)이라는 엔티티를 추가해서 다대다 관계를 일대 다,
다대일 관계로 풀어냈다.
d.주문과 배송정보
-1대 1 관계
-주문할 때 배송정보를 입력할 수 있도록 해놓음
e.상품
-도서, 음반, 영화 로 타입이 나누어짐
f.상품과 카테고리
-상품은 카테고리에 매핑이 된다.
-하나의 카테고리에 여러 가지 상품이 들어갈 수도 있고,
어떤 상품이 카테고리에 복수로 들어갈 수 있기 때문에
다대 다 관계로 세팅
g.데이터베이스의 목적
(참고 블로그 http://kdskor.blogspot.com/2010/10/pk-fk.html)
-효율적이고, 성능면에서 매우 편리하며 신속하게 수많은 데이터들을 보관 및 관리하는 것
-그 중에서도 제일 우선시 되어야 하는 것이 데이터의 무결성이다.
신속하게 처리한다 하더라도 데이터에 결점이 있다면 데이터는 쓸모가 없을 뿐 아니라,
데이터의 결점으로 인하여 잘못된 결과를 초래
-데이터 무결성을 보장해주기 위해서 가장 기본적으로 필요한 것이 PK와 FK
h.PK(Primary Key)와 FK(Foreign Key)
PK
-데이터베이스 생성에서 가장 기본적으로 고려되는 것이 PK
-PK만큼 중요한 것이 FK
-PK는 테이블에서 오직한개만 존재
-PK가 데이터의 유일성을 보장
-테이블에서 PK를 조건으로 조회하여 한 개의 값만 나오거나 값이 나오지 않게 됨
FK
-외래 키는 참조하는 테이블에서 1개의 키(속성 또는 속성의 집합)에 해당하고,
참조하는 측의 관계 변수는 참조되는 측의 테이블의 키를 가리킨다.
-관계형 데이터베이스에서 외래 키(외부 키, Foreign Key)는 한 테이블의 필드(attribute) 중 다른 테이블의 행(row)을
식별할 수 있는 키
예)아파트테이블 세대테이블의 아파트코드값에
아파트테이블의 아파트코드에 없는 값이 들어간다면?
이 때 데이터를 저장 또는 수정시 아파트코드 데이터는 아파트 테이블에 있는 아파트코드
가 맞는지 확인해야 하는데, 이것이 자동적으로 확인되도록 도와주는 것이 FK이다.