1. 내용 : 프로젝트를 진행할 때 정말 중요한 DB 설계 하기! 오라클을 이용해서 DB를 설계했고 mybatis를 사용해서 SPING 프로젝트와 연결했다. ERD도 오라클 프로그램 내에서 제공하는 툴로 만들었다.
2. 과정 중 특이점 : 지난번 개인 프로젝트를 진행할 때 테이블 하나를 뒤집어 엎으면서 처음 DB 구조를 잘 짜는게 중요하단걸 많이 느꼈기 때문에 우리 팀이 생각한 쇼핑몰 프로젝트를 진행하기 위해서는 어떤 테이블이 필요하고 각각의 컬럼은 뭐가 필요할지 먼저 팀원들과 회의를 하면서 손으로 전체 구조를 짠 후 설계했다.
3. 실제 수행
1) 테이블 스페이스와 유저 생성, 권한 부여
MYTS라는 테이블 스페이스를 새롭게 생성하고 유저도 새로 만들었다.
그리고 유저에게 모든 권한을 주었다.
--테이블 스페이스 생성
CREATE TABLESPACE MYTS
datafile 'C:\oraclexe\app\oracle\oradata\XE\ts_study.dbf'
size 100M AUTOEXTEND ON NEXT 5M;
-- 유저 생성
CREATE USER 아이디 IDENTIFIED BY 비밀번호
DEFAULT TABLESPACE MYTS
TEMPORARY TABLESPACE TEMP;
-- 권한 부여
GRANT DBA TO 아이디;
GRANT connect, resource TO 아이디;
2) 테이블 생성
남성 의류 쇼핑몰을 만들기 위해 필요한 테이블을 생성했다.
이후에 약간의 수정을 하거나 삭제나 추가 된 테이블도 있었지만...
그래도 큰 수정은 없었어서 뭐 괜찮았던 것 같다ㅋㅋㅋ 아래는 일부 내용!
CREATE TABLE product (
prod_no NUMBER primary key,
prod_name varchar2(1000),
prod_img varchar2(1000),
prod_price varchar2(100),
prod_brand varchar2(1000),
prod_parts varchar2(100),
prod_style varchar2(100),
prod_url varchar2(1000),
prod_hit NUMBER,
prod_like NUMBER
);
comment ON COLUMN product.prod_name is '제품명' ;
comment ON COLUMN product.prod_img is '제품 이미지' ;
comment ON COLUMN product.prod_price is '가격' ;
comment ON COLUMN product.prod_brand is '브랜드' ;
comment ON COLUMN product.prod_parts is '상의, 하의, 신발, 악세사리 등' ;
comment ON COLUMN product.prod_style is '의류 스타일' ;
comment ON COLUMN product.prod_url is '제품 상세 주소' ;
comment ON COLUMN product.prod_hit is '조회수' ;
comment ON COLUMN product.prod_like is '찜 갯수' ;
ALTER TABLE mem_like --child 테이블명
ADD CONSTRAINT fo_like_prod
foreign KEY(like_prod_no) --child테이블에서 연결할 컬럼
references product (prod_no) --parent 테이블과 컬럼 연결
ON DELETE CASCADE;
ALTER TABLE basket --child 테이블명
ADD CONSTRAINT fo_ba_prod
foreign KEY(ba_prod_no) --child테이블에서 연결할 컬럼
references product (prod_no) --parent 테이블과 컬럼 연결
ON DELETE CASCADE;
혼자하는 프로젝트가 아니기에 코멘트와 주석도 적었음.
3) ERD
최종 발표 때 나온 ERD는 위와 같다.
여러 명이 각자 테이블을 만드는 것 보단 충분한 회의를 거친 후에
한 명이 설계하고 어떤 식으로 설계했는지 sql을 공유하는게 나은듯 하다.
'SPRING > SPRING 프로젝트' 카테고리의 다른 글
SPRING 팀 플젝 : 쇼핑몰 고객센터 FAQ (0) | 2023.01.27 |
---|---|
SPRING 팀 플젝 : @valid를 이용한 회원 가입 유효성 (1) | 2023.01.11 |
SPRING 팀 플젝 : 네이버 아이디로 로그인 하기(네아로) (1) | 2023.01.07 |
SPRING 팀 플젝 남성 전용 쇼핑몰 '초코룩' 개요 (0) | 2022.11.07 |
SPRING 프로젝트 - 펀딩 사이트(7) : 페이지네이션 없이 무한스크롤 구현 (0) | 2022.09.08 |
댓글