논리적 모델링 - 실습
논리적 모델링 - 실습
쇼핑몰 개념적 모델링
개념에서 논리로: 변환의 법칙
| 개념적 모델 요소 | -> | 논리적 모델 요소(RDB) | 예시 |
|---|---|---|---|
| 엔티티(Entity) | -> | 테이블(Table) | 회원 -> 회원 테이블 |
| 속성(Attribute) | -> | 컬럼(Column) | 회원명 -> 회원명 VARCHAR(50) |
| 식별자(Identifier) | -> | 기본 키(Primary Key) | 회원id -> 회원id(PK) |
| 관계(Relationship) | -> | 외래 키(Foreign Key) + 제약 조건 | 회원-주문 관계 -> 주문.회원id(FK) |
| 다대다 관계(M:N) | -> | 연결 테이블(Junction Table) | 주문-상품 관계 -> 주문 항목 테이블 |
쇼핑몰 논리적 모델링
1단계: 핵심 엔티티 테이블 설계
회원 테이블
회원 정보를 저장하는 테이블
- 테이블 명:
회원 - 기본 키(PK)
회원id(대리 키) - 컬럼 정의
회원id:BIGINT,PK. 시스템이 자동으로 생성하는 고유 번호로그인id:VARCHAR(50), 사용자가 로그인 시 사용하는 아이디 (UNIQUE제약조건)비밀번호:VARCHAR(255), 해시화하여 저장될 비밀번호회원명:VARCHAR(50), 회원 명주소:VARCHAR(255), 기본 배송지 주소
상품 테이블
판매할 상품 정보를 저장하는 테이블
- 테이블 명:
상품 - 기본 키(PK):
상품id(대리 키) - 컬럼 정의
상품id:BIGINT,PK. 시스템이 자동으로 생성하는 고유 번호상품명:VARCHAR(100), 상품명상품 가격:INT, 상품 가격재고 수량:INT, 재고 수량
2단계: 관계를 포함한 테이블 설계 (1:N, M:N)
주문 테이블
회원의 주문 정보를 저장한다. 회원 테이블을 참조하는 자식 테이블
- 테이블 명:
주문 - 기본 키(PK):
주문id(대리 키) - 외래 키(FK):
회원id - 컬럼 정의
주문id:BIGINT,PK. 시스템이 자동으로 생성하는 고유 번호회원id:BIGINT,FK.member(회원id)를 참조. 어떤 회원이 주문했는지 알려준다.NOT NULL주문 상태:VARCHAR(20), 주문 상태(예:ORDERED,SHIPPED,COMPLETED,CANCELED)주문 일시:DATETIME, 주문한 날짜 시간
주문 항목 테이블
주문과 상품의 다대다 관게를 해소하기 위한 연결 테이블
- 테이블 명:
주문 항목 - 기본 키(PK):
주문 항목id(대리 키) - 외래 키(FK):
주문id,상품id - 컬럼 정의
주문 항목:BIGINT,PK. 시스템이 자동으로 생성하는 고유 번호주문id:BIGINT,FK,orders(주문id)를 참조 (UNIQUE1제약 조건),NOT NULL상품id:BIGINT,FK.product(상품id)를 참조 (UNIQUE1제약 조건),NOT NULL주문 가격:INT, 주문 당시의 상품 가격주문 수량:INT, 주문한 수량
3단계: 1:1 관계 테이블 설계
배송 테이블
주문에 대한 배송 정보를 저장
- 테이블 명:
배송 - 기본 키(PK):
배송id(대리 키) - 외래 키(FK):
주문id - 컬럼 정의
배송id:BIGINT,PK. 시스템이 자동으로 생성하는 고유 번호주문id:BIGINT,FK,orders(주문id)를 참조 (UNIQUE제약 조건),NOT NULL배송 상태:VARCHAR(20), 배송 상태(예:READY,SHIPPING,COMPLETED)배송지 주소:VARCHAR(255), 배송지 주소운송장 번호:VARCHAR(50), 운송장 번호
결제 테이블
- 테이블 명: 결제
- 기본 키(PK): 결제id (대리 키)
- 외래 키(FK): 주문id
- 컬럼 정의
결제id:BIGINT,PK. 시스템이 자동으로 생성하는 고유 번호주문id:BIGINT,FK,orders(주문id)를 참조 (UNIQUE제약 조건),NOT NULL결제 수단:VARCHAR(50), 결제 수단(예:CREDIT_CARD)결제 금액:INT, 결제 금액결제 상태:VARCHAR(20), 결제 상태(예:PAID,FAILED)결제 일시:DATETIME, 결제 일시, 은행, 신용카드 회사의 결제 시간을 저장
참고
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

