🎅 오너먼트 프로젝트

테이블 이관 작업 진행 (Oracle ➡️ Mysql)

보배 진 2026. 2. 1. 14:59

KEVIN 데이터 베이스 만들기

-- 데이터베이스 생성
CREATE DATABASE IF NOT EXISTS KEVIN
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

-- 사용자 생성
CREATE USER 'KEVIN'@'localhost' IDENTIFIED BY '1234';

-- 권한 부여 (필수, 테이블 생성/접근 가능하도록)
GRANT ALL PRIVILEGES ON KEVIN.* TO 'KEVIN'@'localhost' WITH GRANT OPTION;


-- 권한 적용
FLUSH PRIVILEGES;

-- KEVIN 데이터베이스 사용
USE KEVIN;

 

 

 

 

테이블 생성

USE KEVIN;
SHOW TABLES;

-- 테이블 삭제
DROP TABLE IF EXISTS ORDERS_ITEM;
DROP TABLE IF EXISTS REVIEW;
DROP TABLE IF EXISTS WISHLIST;
DROP TABLE IF EXISTS CONNECT_LOG;
DROP TABLE IF EXISTS ORDERS;
DROP TABLE IF EXISTS ADDRESS;
DROP TABLE IF EXISTS ITEM;
DROP TABLE IF EXISTS EVENT;
DROP TABLE IF EXISTS ACCOUNT;


-- 회원 테이블
CREATE TABLE ACCOUNT (
    ACCOUNT_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '회원 고유 번호 (PK)',
    ACCOUNT_ID VARCHAR(50) COMMENT '회원 아이디',
    ACCOUNT_PASSWORD VARCHAR(100) COMMENT '회원 비밀번호',
    ACCOUNT_NAME VARCHAR(50) COMMENT '회원 이름',
    ACCOUNT_EMAIL VARCHAR(100) COMMENT '회원 이메일',
    ACCOUNT_PHONE VARCHAR(11) COMMENT '회원 전화번호', 
    ACCOUNT_DATE DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '회원 가입일',
    ACCOUNT_ROLE VARCHAR(50) DEFAULT 'USER' COMMENT '회원 권한',
    ACCOUNT_EVENT_OPT_IN TINYINT(1) DEFAULT 0 COMMENT '회원 이벤트 수신 동의'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- 상품 테이블
CREATE TABLE ITEM (
    ITEM_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '상품 고유 번호 (PK)',
    ITEM_NAME VARCHAR(100) COMMENT '상품명',
    ITEM_PRICE INT COMMENT '상품 가격',
    ITEM_STOCK INT COMMENT '상품 재고',
    ITEM_DESCRIPTION VARCHAR(3000) COMMENT '상품 설명',
    ITEM_IMAGE_URL VARCHAR(255) COMMENT '상품 이미지 경로',
    ITEM_CATEGORY VARCHAR(200) COMMENT '상품 카테고리',
    ITEM_REGIST_DATE DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '상품 등록일'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- 주소 테이블
CREATE TABLE ADDRESS (
    ADDRESS_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '주소 고유 번호 (PK)',
    ACCOUNT_PK INT COMMENT '회원 고유 번호 (FK)',
    ADDRESS_NAME VARCHAR(50) COMMENT '배송지명',
    ADDRESS_IS_DEFAULT TINYINT(1) DEFAULT 0 COMMENT '기본 배송지 여부',
    ADDRESS_POSTAL_CODE VARCHAR(20) COMMENT '우편번호',
    ADDRESS_REGION VARCHAR(100) COMMENT '기본 주소',
    ADDRESS_DETAIL VARCHAR(200) COMMENT '상세 주소',
    CONSTRAINT FK_ACCOUNT FOREIGN KEY (ACCOUNT_PK) REFERENCES ACCOUNT(ACCOUNT_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;



-- 주문 테이블
CREATE TABLE ORDERS (
    ORDERS_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '주문 고유 번호 (PK)',
    ACCOUNT_PK INT COMMENT '회원 고유 번호 (FK)',
    ORDERS_DATE DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '주문 일시',
    ORDERS_STATUS VARCHAR(30) DEFAULT 'READY' COMMENT '주문 상태',
    ADDRESS_NAME VARCHAR(50) COMMENT '배송지 명',
    ORDERS_PAYMENT_TYPE VARCHAR(50) COMMENT '결제 방식',
    ORDERS_IMPORT_UID VARCHAR(100) COMMENT '결제 고유 ID',
    ORDERS_MESSAGE VARCHAR(500) COMMENT '주문 요청 사항',
    CONSTRAINT FK_ACCOUNT_ORDERS FOREIGN KEY (ACCOUNT_PK) REFERENCES ACCOUNT(ACCOUNT_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- 주문 상세 테이블
CREATE TABLE ORDERS_ITEM (
    ORDERS_ITEM_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '주문 상세 고유 번호 (PK)',
    ORDERS_PK INT COMMENT '주문 고유 번호 (FK)',
    ITEM_PK INT COMMENT '상품 고유 번호 (FK)',
    ORDERS_ITEM_COUNT INT DEFAULT 0 COMMENT '주문 수량',
    ORDERS_ITEM_PRICE INT DEFAULT 0 COMMENT '주문 시점 가격',
    CONSTRAINT FK_ORDERS_ORDERS_ITEM FOREIGN KEY (ORDERS_PK) REFERENCES ORDERS(ORDERS_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
    CONSTRAINT FK_ITEM_ORDERS_ITEM FOREIGN KEY (ITEM_PK) REFERENCES ITEM(ITEM_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- 리뷰 테이블
CREATE TABLE REVIEW (
    REVIEW_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '리뷰 고유 번호 (PK)',
    ACCOUNT_PK INT COMMENT '회원 고유 번호 (FK)',
    ITEM_PK INT COMMENT '상품 고유 번호 (FK)',
    REVIEW_TITLE VARCHAR(50) COMMENT '리뷰 제목',
    REVIEW_CONTENT VARCHAR(4000) COMMENT '리뷰 내용',
    REVIEW_DATE DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '리뷰 작성일',
    REVIEW_STAR TINYINT(2) DEFAULT 5 COMMENT '별점 (1~5)',
    REVIEW_IMAGE_URL VARCHAR(255) COMMENT '리뷰 이미지 경로',
    CONSTRAINT FK_REVIEW_ACCOUNT FOREIGN KEY (ACCOUNT_PK) REFERENCES ACCOUNT(ACCOUNT_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
    CONSTRAINT FK_REVIEW_ITEM FOREIGN KEY (ITEM_PK) REFERENCES ITEM(ITEM_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- 좋아요 테이블
CREATE TABLE WISHLIST (
    WISHLIST_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '위시리스트 고유 번호 (PK)',
    ACCOUNT_PK INT COMMENT '회원 고유 번호 (FK)',
    ITEM_PK INT COMMENT '상품 고유 번호 (FK)',
    CONSTRAINT FK_WISHLIST_ACCOUNT FOREIGN KEY (ACCOUNT_PK) REFERENCES ACCOUNT(ACCOUNT_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
    CONSTRAINT FK_WISHLIST_ITEM FOREIGN KEY (ITEM_PK) REFERENCES ITEM(ITEM_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- 이벤트 테이블
CREATE TABLE EVENT (
    EVENT_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '이벤트 고유 번호 (PK)',
    EVENT_NAME VARCHAR(200) COMMENT '이벤트 이름',
    EVENT_START_DATE DATE COMMENT '이벤트 시작일',
    EVENT_END_DATE DATE COMMENT '이벤트 종료일',
    EVENT_TARGET_ACCOUNT JSON COMMENT '이벤트 대상',
    EVENT_TARGET_CATEGORY JSON COMMENT '이벤트 상품 카테고리',
    EVENT_DESCRIPTION VARCHAR(3000) COMMENT '이벤트 설명',
    EVENT_DISCOUNT_RATE INT COMMENT '할인율',
    EVENT_IMAGE_URL VARCHAR(255) COMMENT '이벤트 이미지 경로'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


-- 접속 로그 테이블
CREATE TABLE CONNECT_LOG (
    CONNECT_LOG_PK INT AUTO_INCREMENT PRIMARY KEY COMMENT '로그 고유 번호 (PK)',
    ACCOUNT_PK INT COMMENT '접속한 회원 고유 번호 (FK)',
    CONNECT_IP VARCHAR(50) COMMENT '접속한 IP 주소',
    CONNECT_DEVICE VARCHAR(200) COMMENT '접속 환경(기기/브라우저)',
    CONNECT_DATE DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '접속한 날짜·시간',
    CONSTRAINT FK_CONNECT_ACCOUNT FOREIGN KEY (ACCOUNT_PK) REFERENCES ACCOUNT(ACCOUNT_PK)
        ON DELETE CASCADE
        ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;