포스트

논리적 모델링 - 실습

논리적 모델링 - 실습

쇼핑몰 개념적 모델링

개념에서 논리로: 변환의 법칙

개념적 모델 요소->논리적 모델 요소(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 라이센스를 따릅니다.