How to Go From Requirements to a Database Schema
- 비즈니스 요구사항을 완전한 데이터베이스 설계(ERD)로 전환하는 과정은 핵심 기능을 놓치거나 과도하게 복잡하게 만들지 않기 위해 중요합니다. 🗺️
- 버거 레스토랑 주문 시스템을 예시로 들어, 메뉴 관리, 주문 추적, 재고 관리, 직원 및 판매 기록 등 7가지 핵심 요구사항을 기반으로 설계가 진행됩니다. 🍔
- 메뉴 항목은
menu_item 테이블과 menu_category 테이블로 구성되며, 각 항목의 ID, 이름, 가격 및 카테고리를 저장합니다. 🏷️
- 고객 주문은 SQL 예약어 'ORDER'를 피해
customer_order 테이블로 관리되며, 주문 시간, 상태, 담당 직원, 총액 정보를 포함합니다. 🧾
- 주문에 포함된 메뉴 항목은
order_item 조인 테이블을 통해 customer_order와 menu_item을 연결하며, 수량과 주문 당시의 가격을 기록하여 가격 변동에 대응합니다. 🔗
- 각 메뉴 항목의 재료는
ingredient 테이블과 menu_item_ingredient 조인 테이블을 사용하여 재료명, 단위, 수량을 추적합니다. 🌱
- 재료 재고 관리를 위해
ingredient 테이블에 quantity_in_stock 및 last_updated 컬럼을 추가하여 실시간 재고 수준을 파악하고 관리합니다. 📊
- 직원 정보는
employee 테이블에 이름과 role 테이블에 연결된 역할 ID를 포함하여 직원의 역할까지 관리할 수 있도록 확장됩니다. 🧑💼
- 판매 및 결제 정보는
payment 테이블에 주문 ID, 결제 금액, 결제 방식, 결제 시간을 기록하며, 여러 결제 수단을 지원하기 위해 customer_order 테이블과 분리하여 설계될 수 있습니다. 💳
- 요구사항에 직접 기반한 설계를 통해 불필요한 복잡성을 피하고, 특정 설계 결정(예: 별도 결제 테이블)은 이해관계자와 확인하는 것이 중요합니다. ✅