-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
🌸 ### DB모델링 개념
🌸 ### 예시) 카페에서 고객이 메뉴를 주문하고 결제하는 시스템을 만드는 경우
✅ 개념적 모델링 :
✔️ 목적: "어떤 업무 개념이 있는지?"를 파악
✔️ 형태: 업무 중심 + 관계 위주
- 주요 개체(엔티티) : 고객 (Customer), 메뉴 (Menu), 주문 (Order)
- 관계(Relationship) : 고객은 주문을 한다, 주문은 메뉴를 포함한다
✅ 논리적 모델링
✔️ 목적: 개념을 구조화(테이블 형태)
✔️ 형태: 엔티티 → 테이블, 속성 → 컬럼
- 고객 테이블 (Customer) : 고객 ID (PK), 이름, 전화번호
- 메뉴 테이블 (Menu) : 메뉴 ID (PK), 메뉴명, 가격
- 주문 테이블 (Order) : 주문 ID (PK), 고객 ID (FK), 주문 일시
- 주문 상세 테이블 (OrderItem) : 주문 ID (FK), 메뉴 ID (FK), 수량
✅ 물리적 모델링
✔️ 목적: 실제 DB에 맞게 구현(mysql8이면 이 버전에 맞게 구현)
✔️ 형태: 성능, 저장 공간 크기, 타입 고려하여 데이터 타입 설정, 인덱스 추가, 제약조건 정의
CREATE TABLE Customer (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
phone VARCHAR(20)
);
CREATE TABLE Menu (
menu_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(6,2)
);
CREATE TABLE Order (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
order_date DATETIME,
FOREIGN KEY (customer_id) REFERENCES Customer(customer_id)
);
CREATE TABLE OrderItem (
order_id INT,
menu_id INT,
quantity INT,
PRIMARY KEY (order_id, menu_id),
FOREIGN KEY (order_id) REFERENCES `Order`(order_id),
FOREIGN KEY (menu_id) REFERENCES Menu(menu_id)
);
👉 모델링 사이트 : https://www.erdcloud.com
🔴 회원가입 후, 사용
🔴 export를 누르면, 화면을 png로 저장할 수도 있고, 표를 excel로 저장할 수도 있고, 자동 생성된 sql문으로 저장할 수도 있음.
🔴 import는 이미 생성된 sql문으로 erd를 그릴 수 있음.
CREATE TABLE `member` (
`memberId` char(100) NOT NULL,
`pw` char(10) NULL,
`name` varchar(100) NOT NULL COMMENT '회원이름',
`tel` varchar(100) NULL
);
CREATE TABLE `buy` (
`Key` int NOT NULL,
`memberId2` char(100) NOT NULL,
`productName` varchar(100) NULL,
`price` int NULL
);
CREATE TABLE `board` (
`boardId` int NOT NULL COMMENT '게시판id',
`title` varchar(100) NULL,
`content` text NULL,
`memberId` char(100) NOT NULL
);
ALTER TABLE `member` ADD CONSTRAINT `PK_MEMBER` PRIMARY KEY (
`memberId`
);
ALTER TABLE `buy` ADD CONSTRAINT `PK_BUY` PRIMARY KEY (
`Key`,
`memberId2`
);
ALTER TABLE `board` ADD CONSTRAINT `PK_BOARD` PRIMARY KEY (
`boardId`
);
ALTER TABLE `buy` ADD CONSTRAINT `FK_member_TO_buy_1` FOREIGN KEY (
`memberId2`
)
REFERENCES `member` (
`memberId`
);
🧾 ERDCLOUD 결과물
🔴 refresh all : 갱신된 내용 반영
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation











