1. 데이터 모델링이란
- 데이터 모델링의 개념
정보 시스템 구축의 대상이 되는 데이터를 약속된 표기법에 의해 표기하는 것을 의미.
실제 데이터베이스 구축에 활용
- 데이터 모델링의 절차
1. 요구사항 수집 : 어떤 업무를 데이터화하여 모델링할 것인지 결정
- 커피 주문에 필요한 메뉴를 구성하고 조회가 가능해야 한다. --> 메뉴 객체
- 커피 주문은 포인트로 가능하며, 포인트를 충전할 수 있다. --> 포인트 객체 또는 유저에 포인트 필드로 존재
- 커피 주문 내역을 통해 인기 있는 메뉴를 추천한다. (최근 7일간 인기있는 메뉴 3개) --> 주문 내역 객체
- 메뉴별 주문 횟수가 정확해야 한다. --> 각 주문 내역은 메뉴별 주문 횟수를 담고 있어야 함
- 동시성, 데이터 일관성을 고려하여야 한다. --> 필요한 곳에 Lock 구현
- 다수 서버 환경에서도 안정적으로 동작하는 커피숍 주문 시스템 구현
- 주문 내역을 데이터 수집 플랫폼으로 실시간 전송해야 한다. --> 주문 내역 원격 데이터베이스에 기록하여 관리
2. 개념적 데이터 모델링 : 하고자 하는 일의 데이터 간의 관계를 구상하는 단계
객체와 그들 간의 관계를 발견 및 표현하기 위해 ERD 다이어그램 생성
*피터 첸 표기법

릴레이션 스키마 - PK FK
- 사용자(user)
- 식별자(id)
- 이름(name)
- 포인트 잔액(point_balance) <-- 조회 성능을 위한 cache column: 원본이 바뀌었을 때 동기화돼야 함
- 포인트 이력(point_transaction)
- 식별자(id)
- 회원(user_id)
- 주문내역(order_id, nullable) <-- 충전 시에는 null값
- 거래량(amount) <-- 부호로 관리하여 잔액 계산 편의 도모
- 생성 시각(created_at)
- 메뉴 (menu)
- 식별자(id)
- 이름(name)
- 가격(price)
- 주문 내역 (order)
- 식별자(id)
- 주문자(user_id)
- 총 가격 (total_price)
- 주문 상품 (order_product)
- 식별자 (id)
- 주문(order_id)
- 메뉴(menu_id)
- 주문상품명(name) <-- snapshot: 주문 시점 이후 변경되더라도 동기화되면 안 됨
- 개당 가격(unit_price) <-- snapshot
- 수량(quantity)
2. ERD 설계

참고
📋 데이터 모델링 개념 & ERD 다이어그램 작성 💯 총정리
데이터 모델링 이란? 데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제
inpa.tistory.com
'Projects > [Spring] Coffee Shop Project' 카테고리의 다른 글
| 트러블슈팅 : MySQL Access Denied 오류 해결하기 (0) | 2026.04.02 |
|---|---|
| 트러블슈팅: redisson-spring-boot-starter Spring Boot 4.x 호환성 오류 (0) | 2026.04.02 |
| API 명세서 만들어보기 (3) | 2026.04.01 |
| 3. 1차 피드백 후 수정 ERD (0) | 2026.03.27 |
| [데이터베이스] 2. 식별 관계와 비식별 관계 (8) | 2026.03.27 |