티스토리 뷰
최종목표:
디비 개발하는 프로세스에 따라 개발을 해보겠습니다.
나라, 상점, 고객, 브랜드, 상품 테이블을 구성하고 인덱싱 후, 더미데이터를 생성해 보겠습니다.
📍요구사항 → 개념 설계(ERD) → 논리 설계 → 물리 설계 → 구현 → 테스트 → 운영
내멋대로 요구사항
1. 한 나라에는 여러개의 샵이 존재한다.
2. 하나의 브랜드에는 상품이 0개, 1개~N개가 등록된다.
3. 샵에는 0개, 1개, N개의 상품이 등록된다.
4. 고객은 1개~N개의 상품을 구매한다.
5. 하나의 주문 건안에 여러개의 상품이 담긴다. (주문상세 개념)
개념 설계
ERD
위의 표식을 통해 손으로 연관관계를 간단히 표현해보겠습니다.

논리 설계
ERD의 각 개체를 하나의 릴레이션으로 표현합니다.
- 객체의 이름 → 릴레이션 이름
- 개체의 속성 → 릴레이션의 속성
- 개체의 키 속성 → 릴레이션의 기본키
- 개체의 속성이 복합 속성인 경우에는 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환

물리 설계
-- 나라 테이블
CREATE TABLE country (
country_id INT AUTO_INCREMENT PRIMARY KEY,
country_name VARCHAR(100) NOT NULL,
country_code CHAR(2) NOT NULL
);
-- 지점 테이블
CREATE TABLE shop (
shop_id INT AUTO_INCREMENT PRIMARY KEY,
shop_name VARCHAR(255) NOT NULL,
country_id INT NOT NULL,
FOREIGN KEY (country_id) REFERENCES country(country_id)
);
-- 브랜드 테이블
CREATE TABLE brand (
brand_id INT AUTO_INCREMENT PRIMARY KEY,
brand_name VARCHAR(255) NOT NULL
);
-- 상품 테이블
CREATE TABLE goods (
goods_id INT AUTO_INCREMENT PRIMARY KEY,
goods_name VARCHAR(255) NOT NULL,
brand_id INT NOT NULL,
FOREIGN KEY (brand_id) REFERENCES brand(brand_id)
);
-- 고객 테이블
CREATE TABLE customer (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE
);
-- 주문_상품 테이블 (구매 테이블에 해당)
CREATE TABLE purchase_goods (
purchase_goods_id INT AUTO_INCREMENT PRIMARY KEY, -- PK 추가 (구매 상세 ID)
quantity INT NOT NULL DEFAULT 1, -- 상품 개수
customer_id INT NOT NULL,
goods_id INT NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customer(customer_id),
FOREIGN KEY (goods_id) REFERENCES goods(goods_id)
);
** 다음장에서 계속됩니다..
참고 자료 ^^


'MySQL' 카테고리의 다른 글
| [MySQL] 표준 프로세스대로 개발하기 (3) (0) | 2025.09.03 |
|---|---|
| [MySQL] 표준 프로세스대로 개발하기 (2) (0) | 2025.09.03 |
| [MySQL] Clustered Index & Non-Clustered Index (0) | 2025.09.03 |
| [MySQL] SQL 문법 (0) | 2025.09.02 |
| [MYSQL] 프로그래머스 - 멸종위기의 대장균 찾기 (0) | 2025.09.02 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 디비개발프로세스
- 데이터업로드
- 시청역놀곳
- xcrunerror
- menu만들기
- 컬럼타입변경
- csv업로드
- httpcode
- 사용자별메뉴
- 오리지널팬케이스하우스
- 재귀구문
- 500에러관리
- 권한별메뉴만들기
- 디너요리추천
- 시청역숙소
- csv다운로드
- 바디캐싱
- 스프링부트
- 유에이치스위트서울스퀘어
- 오리지널팬케이스하우스 판교점
- springboot
- 논클러스터 인덱스
- 판교테크원타워맛집
- 데이터베이스
- MAC
- MySQL
- 유에이치스위트
- 신사동이자카야
- cachedbodyhttpservletrequest
- 400에러관리
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
글 보관함