본문 바로가기

포트폴리오/Database

쇼핑몰 데이터베이스 구축하기

쇼핑몰 홈페이지를 만들기에 앞서

데이터베이스를 구축해야한다.

 

먼저 회원 테이블이다.

<users 테이블>

create table users(
    id varchar2(20) primary key,
    pwd varchar2(20),
    name varchar2(20),
    email varchar2(40),
    zip_code varchar2(7),
    address varchar2(100),
    phone varchar2(20),
    useyn number default 1, -- 활동 : 1, 탈퇴 : 2
    regdate date default sysdate);
컬럼명 타입 설명 비고
id varchar2(20) 회원 아이디 primary key
pwd varchar2(20) 회원 비밀번호  
name varchar2(20) 회원 이름  
email vharckar2(40) 회원 이메일  
zip_code varchar2(7) 회원 우편번호  
address varchar2(100) 회원 주소  
phone varchar2(20) 회원 전화번호  
useyn number 회원 탈퇴여부 defalut 1(가입 :1, 탈퇴 : 2)
regdate date 회원 가입일 default sysdate

 

 

<product 테이블>

create table product(
    prodnum number(5) primary key,
    name varchar2(200) default 0,
    kind char(1), -- bag : 1, wallet : 2, shoes : 3, acc : 4
    price1 number(7) default 0,
    price2 number(7) default 0,
    price3 number(7) default 0,
    content varchar2(1000) default null,
    image varchar2(50) default 'default.jpg',
    useyn char default 'y', -- 판매 : y, 판매중단 : n
    regdate date default sysdate);
    
create sequence product_seq start with 1 increment by 1;
컬럼명 타입 설명 비고
prodnum number(5) 상품 번호 primary key
name varchar2(200) 상품 이름  
kind char(1) 상품 종류 bag : 1, wallet : 2, shoes :3, acc : 4
price1 number(7) 원가  
price2 number(7) 판매가  
price3 number(7) 이익  
content varchar2(1000) 상품 설명  
image varchar2(50) 상품 사진  
useyn char 판매 유무 default 'y'
판매 : 'y', 판매중단 : 'n'
regdate date 등록일  
product_seq sequence 상품 번호 생성 시퀀스  

 

 

<employee 테이블> 관리자 테이블

create table employee(
    id varchar2(20) primary key,
    pwd varchar2(20),
    name varchar2(40),
    email varchar2(40),
    phone varchar2(20));
컬럼 타입 설명 비고
id varchar2(20) 관리자 아이디 primary key
pwd varchar2(20) 관리자 비밀번호  
name varchar2(20) 관리자 이름  
email varchar2(40) 관리자 이메일  
phone varchar2(20) 관지라 전화번호  

 

 

<cart 테이블> 장바구니

create table cart(
    cartnum number(8) primary key,
    id varchar2(20),
    prodnum number(5),
    quantity number(5) default 1,
    result char(1) default 1, -- 배송 전 : 1, 배송 완료 : 2
    indate date default sysdate, -- 카트 담은 날짜
    constraint fk_id foreign key(id) references users(id),
    constraint fk_prodnum foreign key(prodnum) references product(prodnum));
    
create sequence cart_seq start with 1 increment by 1;
컬럼 타입 설명 비고
cartnum number(8) 장바구니 번호 primary key
id varchar2(20) 장바구니 이용 회원 foreign key for
user(id)
prodnum number(5) 상품 번호 foreign key for product(prodnum)
quantity number(5) 수량  
result char(1) 배송 유무 default 1
배송 전 : 1, 배송 후 : 2
indate date 카트 담은 날짜  
cart_seq sequence 장바구니 번호 생성  

 

 

<orders 테이블>

create table orders(
    ordernum number(10) primary key,
    id varchar2(20),
    indate date default sysdate,
    constraint fk_order_id foreign key(id) references users(id));
    
create sequence orders_seq start with 1 increment by 1;
컬럼 타입 설명 비고
ordernum number(10) 주문번호 primary key
id varchar2(20) 주문한 회원 아이디 foreign key for
users(id)
indate date 주문날짜  
orders_seq sequence 주문번호 생성  

 

 

<상세 주문 테이블>

create table order_detail(
    odnum number(10) primary key,
    ordernum number(10),
    prodnum number(5),
    quantity number(5),
    result char(1) default 1,
    constraint fk_order_detail foreign key(ordernum) references orders(ordernum),
    constraint fk_prod_detail foreign key(prodnum) references product(prodnum));
    
    create sequence order_detail_seq start with 1 increment by 1;
컬럼 타입 설명 비고
odnum  number(10) 주문처리 번호 primary key
ordernum number(10) 주문번호 foreign key for
orders(ordernum)
prodnum number(5) 상품번호 foreign key for
product(prodnum)
quantity number(5) 수량  
result char(1) 처리유무 default 1
배송 전 : 1, 배송 후 : 2
order_detail_seq sequence 주문처리 번호 생성  

 

<QnA 테이블>

create table qna(
    qseq number(5) primary key,
    subject varchar2(30),
    content varchar2(1000),
    reply varchar2(1000),
    id varchar2(20),
    rep char(1) default 1,
    indate date default sysdate,
    constraint fk_qna_id foreign key(id) references users(id));
    
create sequence qna_seq start with 1 increment by 1;
컬럼 타입 설명 비고
qseq number(5) 문의 번호 primary key
subject varachar2(30) 문의 제목  
content varchar2(1000) 문의 내용  
reply varchar2(1000) 답변 내용  
id varchar2(20) 문의한 고객 foreign key for
users(id)
rep char(1) 답변 유무 default 1
답변 전 : 1, 답변 후 : 2
indate date 문의 날짜  
qna_seq sequence 문의 번호 생성  

 

 

필요한 데이터만 얻어올 수 있게 view를 생성한다.

-- 뷰 생성
--(1) 카트 뷰
create or replace view cart_view
as
select o.cartnum, o.id, o.prodnum, m.name mname, p.name pname, 
o.quantity, o.indate, p.price2, o.result 
from cart o, users m, product p 
where o.id = m.id and o.prodnum = p.prodnum
and result='1';

-- 주문 뷰
create or replace view order_view
as
select d.odnum, o.ordernum, o.id, o.indate, d.prodnum, d.quantity, m.name mname,
m.zip_code, m.address, m.phone, p.name pname, p.price2, d.result   
from orders o, order_detail d, users m, product p 
where o.ordernum=d.ordernum and o.id = m.id and d.prodnum = p.prodnum;


-- 신상품
create or replace view new_pro_view
as
select prodnum, name, price2, image 
from( select rownum, prodnum, name, price2, image 
      from product  
      where useyn='y' 
      order by regdate desc)
where  rownum <=4;
728x90
반응형

'포트폴리오 > Database' 카테고리의 다른 글

오라클 ER Diagram(ER 다이어그램) 생성하기  (0) 2020.12.02