CodeGym /행동 /SQL SELF /Marketplace Database Architecture

Marketplace Database Architecture

SQL SELF
레벨 61 , 레슨 0
사용 가능

이미 다 알고 있고 할 줄 아니까, 이제 진짜 프로젝트에서 네 지식을 써볼 시간이야. 보통 실제 프로젝트의 데이터베이스는 이렇게 나뉘어:

  • 작은 거 - 100개 이하 테이블
  • 중간 - 100~1000개 테이블
  • 큰 거 - 1000개 이상 테이블

경험 없으면 100개 넘는 테이블이 왜 필요한지 감이 안 올 수도 있어. 그래서 오늘 그런 기회를 줄게 :)

내가 e-commerce 플랫폼용 리얼한 관계형 데이터베이스 (Marketplace)를 줄 거야. 이 데이터베이스는 스키마로 나뉘어 있고, 각 스키마는 사용자, 상품, 주문, 물류, 마케팅, 고객지원 등 특정 도메인 영역을 담당해.

이 프로젝트는 109개 테이블로 구성되어 있고, 11개 스키마로 나뉘어 있어. 각 테이블은 외래키도 달려 있고, 레퍼런스 테이블이나 시스템 테이블로 확장도 쉽게 할 수 있게 준비되어 있어.

데이터베이스 구조

스키마 user — 사용자와 활동

user 스키마에는 계정, 프로필, 연락처 정보, 로그인 로그, 리뷰, 소셜 연결 테이블이 있어.

테이블 예시:

  • account — 가입 정보
  • profile — 개인 정보
  • review, comment — 리뷰와 댓글

스키마 product — 상품과 카탈로그

product 스키마에는 상품 설명, 옵션, 속성, 이미지, 상태, 변경 이력 등이 들어 있어.

테이블 예시:

  • product, variant — 상품과 변형
  • attribute, tag — 속성과 태그
  • supplier, composition — 제조사와 구성

스키마 order — 주문과 장바구니

주문 생성, 추적, 상태, 반품, 결제 기능이 들어 있어.

테이블 예시:

  • order, order_item
  • status_log, return, cancellation
  • invoice, discount

스키마 logistics — 창고, 배송, 경로

창고 재고, 이동, 배송, 경로 관리를 담당해.

테이블 예시:

  • warehouse, inventory, transfer
  • shipping_method, package
  • driver, carrier, route

스키마 payment — 결제와 트랜잭션

결제 시스템, 트랜잭션, 지갑, 환불 정보를 저장해.

테이블 예시:

  • payment, transaction, refund
  • wallet, wallet_transaction
  • gateway, method

스키마 marketing — 프로모션과 광고

프로모션 코드, 배너, 추천 프로그램, 추천 상품 테이블이 있어.

테이블 예시:

  • campaign, promo_code, discount
  • referral_program, featured_product

스키마 support — 고객지원

티켓 시스템, 메시지, 상태, 지원 피드백 테이블이야.

테이블 예시:

  • ticket, ticket_message, ticket_status
  • agent, feedback

스키마 analytics — 메트릭과 행동

세션, 사용자 행동, 전환, 메트릭 추적용 테이블이야.

테이블 예시:

  • event, session, click, page_view
  • goal, metric_snapshot

스키마 admin — 관리와 운영

관리자, 역할, 감사 로그, 시스템 설정 테이블이야.

테이블 예시:

  • admin, admin_role
  • audit_log, setting, api_token

스키마 content — 정적 페이지와 블록

CMS용 콘텐츠: 페이지, 메뉴, 번역, 버전 테이블이야.

테이블 예시:

  • page, block, menu, translation, version

스키마 ref — 레퍼런스와 메타 테이블

타입, 상태, 국가, 반품 사유 등등이 들어 있어.

테이블 예시:

  • country, currency, status, payment_status
  • refund_reason, inventory_change_reason

테이블 만들기

너 편하게 하라고, 내가 모든 테이블 만드는 스크립트도 줄 거야.

그냥 SQL 스크립트 받아서 실행만 하면 돼.

  1. PostgreSQL에서 빈 데이터베이스를 생성합니다.
  2. 스키마를 다운로드합니다.
  3. 데이터베이스 구조 가져오기:
psql -U postgres -d marketplace_db < init_schema.sql

데이터 로딩

또한 모든 테이블의 데이터.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION