쇼핑몰 홈페이지를 만들기에 앞서
데이터베이스를 구축해야한다.
먼저 회원 테이블이다.
<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) | 회원 이름 | |
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) | 관리자 이름 | |
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 |
---|