순서
1. 상품 테이블
2. 카테고리 테이블
1. 상품 테이블
상품 테이블을 구성할 칼럼들을 다음과 같이 정했습니다.
상품 아이디, 상품 명, 상품 설명, 상품 가격, 상품 수량, 상품 조회수, 카테고리 아이디, 상품 생성 날짜, 상품 수정 날짜, 상품 활성화 상태, 상품 평점
정해진 컬럼 구성을 가지고 아래와 같이 '상품 테이블' 생성 쿼리를 입력하여 테이블을 생성합니다.
--------------------------------------------------------
--------------- PRODUCT 관련 ------------------------
--------------------------------------------------------
CREATE TABLE PRODUCT(
PRODUCT_ID NUMBER primary key,
PRODUCT_TITLE VARCHAR2(100),
PRODUCT_CONTENT VARCHAR2(2000),
PRODUCT_PRICE NUMBER,
PRODUCT_STOCK NUMBER,
PRODUCT_COUNT NUMBER DEFAULT 0,
KIND_ID VARCHAR2(30),
PRODUCT_CREATE_DATE DATE DEFAULT SYSDATE,
PRODUCT_MODIFY_DATE DATE DEFAULT SYSDATE,
PRODUCT_STATUS VARCHAR2(1) DEFAULT 'Y' CHECK (PRODUCT_STATUS IN ('Y', 'N')),
RATINGAVG NUMBER(2,1) default 0
);
저는 오라클 11g 버전을 사용했기 때문에 number generated as identity (start with 1)을 사용할 수 없어 시퀀스를 따로 생성해줬습니다.
CREATE SEQUENCE SEQ_PID
START WITH 1
INCREMENT BY 1
NOCACHE;
CREATE OR REPLACE TRIGGER TRIGGER_PID
BEFORE INSERT ON PRODUCT
FOR EACH ROW
BEGIN
SELECT SEQ_PID.NEXTVAL
INTO :new.PRODUCT_ID
FROM dual;
END;
/
COMMIT;
2. 카테고리 테이블
아래의 쿼리를 입력하여 카테고리 테이블(SWAN_CATE)을 생성합니다.
--------------------------------------------------------
--------------- PRODUCT 카테고리 관련 ------------------------
--------------------------------------------------------
CREATE TABLE SWAN_CATE(
TIER NUMBER,
KIND_NAME VARCHAR2(30),
KIND_ID VARCHAR2(30) PRIMARY KEY,
CATEPARENT VARCHAR2(30)
);
카테고리 코드 규칙
상품을 2가지 단계로 분류했습니다.
1단계 분류는 생리대, 월경 컵, Y존 케어, 콘돔의 구분입니다.
2단계 분류는 1단계 분류에서 좀 더 세분화된 분야의 범주로 분류했습니다.
위의 '카테고리 코드' 와 더불어 "카테고리 테이블(SWAN_CATE)"에는 '카테고리 이름(KIND_NAME)', '상위 카테고리(CATEPARENT)', '카테고리 등급(TIER)' 칼럼들로 구성했습니다.
'상위 카테고리(CATEPARENT)'는 어떠한 상위 카테고리의 하위 카테고리인지를 알 수 있는 역할을 합니다.
'카테고리 등급(TIER)' 경우 해당 카테고리 번호가 위에서 분류한 1단계, 2단계 중 어떠한 단계인지를 표시합니다.
데이터 삽입
'카테고리 코드'를 사용자가 등록하고, 수정할 수 있도록 해주는 것이 좋지만, 저는 데이터베이스 명령을 통해 직접 카테고리 코드 데이터를 삽입했습니다.
위의 카테고리 코드 규칙에 근거하여 아래의 데이터를 삽입하였습니다. (Oracle의 경우 반드시 아래의 명령을 실행한 뒤 "commit"을 실행해야 합니다.)
INSERT INTO SWAN_CATE VALUES (1, '생리대', '100000', '100000');
INSERT INTO SWAN_CATE VALUES (2, '대형', '100001', '100000');
INSERT INTO SWAN_CATE VALUES (2, '중형', '100002', '100000');
INSERT INTO SWAN_CATE VALUES (2, '오버나이트', '100003', '100000');
INSERT INTO SWAN_CATE VALUES (2, '팬티라이너', '100004', '100000');
INSERT INTO SWAN_CATE VALUES (1, '월경컵', '200000', '200000');
INSERT INTO SWAN_CATE VALUES (2, '루나컵', '200001', '200000');
INSERT INTO SWAN_CATE VALUES (2, '티읕컵', '200002', '200000');
INSERT INTO SWAN_CATE VALUES (2, '비움컵', '200003', '200000');
INSERT INTO SWAN_CATE VALUES (2, '페미사이클', '200004', '200000');
INSERT INTO SWAN_CATE VALUES (2, '링클컵', '200005', '200000');
INSERT INTO SWAN_CATE VALUES (1, 'Y존 케어', '300000', '300000');
INSERT INTO SWAN_CATE VALUES (2, '여성 청결제', '300001', '300000');
INSERT INTO SWAN_CATE VALUES (2, '이너퍼퓸', '300002', '300000');
INSERT INTO SWAN_CATE VALUES (2, 'Y존 세럼', '300003', '300000');
INSERT INTO SWAN_CATE VALUES (2, 'Y존 에센스', '300004', '300000');
INSERT INTO SWAN_CATE VALUES (1, '콘돔', '400000', '400000');
INSERT INTO SWAN_CATE VALUES (2, '초박형', '400001', '400000');
INSERT INTO SWAN_CATE VALUES (2, '사정지연', '400002', '400000');
INSERT INTO SWAN_CATE VALUES (2, '도트형', '400003', '400000');
INSERT INTO SWAN_CATE VALUES (2, '굴곡형', '400004', '400000');
INSERT INTO SWAN_CATE VALUES (2, '무꼭지', '400005', '400000');
INSERT INTO SWAN_CATE VALUES (2, '발열', '400006', '400000');
COMMIT;
'😎 STS3 Spring 쇼핑몰' 카테고리의 다른 글
STS3 쇼핑몰 프로젝트[18] 상품 등록 - 카테고리 리스트 구현(1) (0) | 2022.08.03 |
---|---|
STS3 쇼핑몰 프로젝트[17] 상품 등록 - 등록 기본 구현 (0) | 2022.08.03 |
STS3 쇼핑몰 프로젝트[15] 인터셉터 적용 (0) | 2022.08.03 |
STS3 쇼핑몰 프로젝트[14] 마이페이지 비밀번호 변경, 회원 탈퇴 (0) | 2022.08.02 |
STS3 쇼핑몰 프로젝트[13] 마이페이지 내 정보 보기, 내 정보 수정 (0) | 2022.08.02 |