--임의 폴더를 만든다. 필자는 D 드리버의 oracleDB 폴더를 생성했다.
-- 콘솔창을 연다
-- C:> cmd
-- DBA 접속
-- C:> sqlplus / as sysdba
-- 테이블 스페이스 생성 create tablespace macaronics datafile 'D:\oracleDB/macaronics.dbf' size 50m autoextend on next 10m maxsize unlimited;
-- 계정 생성 create user macaronics identified by 1111 default tablespace macaronics; -- 권한 설정 grant connect, resource, create view to macaronics;
--임의  폴더를 만든다. 필자는 D 드리버의 oracleDB 폴더를 생성했다.
-- 콘솔창을 연다
-- C:> cmd
-- DBA 접속
-- C:> sqlplus / as sysdba
-- 테이블 스페이스 생성
create tablespace macaronics
datafile 'D:\oracleDB/macaronics.dbf'
size 50m 
autoextend on
next 10m
maxsize unlimited;
-- 계정 생성
create user macaronics identified by 1111 default tablespace macaronics;
-- 권한 설정
grant connect, resource, create view to macaronics;
-- 관리자 테이블 생성
create table tbl_admin(
	
	id varchar2(20) PRIMARY KEY ,  -- 아이디
	pwd VARCHAR2(20),				-- 비밀번호
	name varchar2(40),				-- 이름
	phone varchar2(20)				-- 전화번호
) TABLESPACE macaronics ;  
-- 주소 테이블 생성
create table tbl_address(
	zip_num VARCHAR2(10),    -- 우편번호
	address1 VARCHAR2(100),  -- 주소
	address2 VARCHAR2(100)   -- 상세주소
);
-- 회원 테이블 생성
create table tbl_member (
  id varchar2(20) PRIMARY KEY , -- 회원아이디
  pwd VARCHAR2(20) ,			-- 회원암호
  name VARCHAR2(40),			-- 회원이름
  email VARCHAR2(40),			-- 회원 이메일
  zip_num VARCHAR2(10),			-- 우편번호
  address VARCHAR2(200),		-- 주소
  phone VARCHAR2(20),			-- 전화번호
  useyn char(1) default 'y',				-- 탈퇴여부 회원의 탈퇴 여부 체크, y:사용가능, n:탈퇴
  ip varchar(100),				-- 가입시 아이피 주소
  indate date default sysdate	-- 가입일
  
)TABLESPACE macaronics ;  
  
-- 상품 테이블
create table tbl_product (
	pseq number PRIMARY KEY , -- product_seq 시퀀스 객체로 자동 일련번호 부여
	name VARCHAR2(100) DEFAULT 0,			-- 상품명 
	kind char(1),		-- 상품 종류 
	price1 number DEFAULT 0,			-- 원가
	price2 number default 0,			-- 판매가
	price3 number DEFAULT 0,			-- 판매가-원가
	content VARCHAR2(3000) null,		-- 상품 내용
	image VARCHAR2(150) DEFAULT 'default.jpg',	
	useyn VARCHAR2(1) DEFAULT 'y', 			-- 상품 사용유무 체크 y: 사용가능 n: 사용 불가능
	bestyn VARCHAR2(1) DEFAULT 'n',			-- 베스트상품인지 여부 체크 y:베스트 상품 n:베스트 상품 아님
	indate date default sysdate			-- 등록일
	
) TABLESPACE macaronics ;  
-- 상품 테이블 시퀀스 생성
create SEQUENCE product_seq 
 START WITH 1 
 INCREMENT BY 1
 NOMAXVALUE 
 NOCYCLE ; 
-- 장바구니 테이블
create table  tbl_cart(
	cseq number PRIMARY KEY,  -- 장바구니 번호 - cart_seq 시퀀스로 객체로 자동 일련번호 부여
	id VARCHAR2(20),		--  FK 회원아이디 tbl_number 테이블의 기본키인 id 컬럼	
	pseq number,			-- FK 상품번호  tbl_product 테이블의 기본키인 pseq
	quantity number  DEFAULT 1, -- 수량
	result char(1)   default '1', -- 처리완료여부 1 미처리 2처리
	indate date DEFAULT sysdate	 -- 등록일
)TABLESPACE macaronics ;  
-- 장바구니 테이블 시퀀스 생성
create sequence cart_seq
 START WITH 1
 INCREMENT BY 1
 NOMAXVALUE 
 NOCYCLE ;
 
-- tbl_cart  id 외래키 제약조건 추가
alter table tbl_cart
add constraint tbl_cart_id_fk foreign key(id)
references tbl_member(id) on delete cascade;
-- tbl_cart  pseq 외래키 제약조건 추가
alter table tbl_cart
add CONSTRAINT tbl_cart_pseq_fk FOREIGN KEY (pseq)
REFERENCES tbl_product(pseq) on delete CASCADE ;
-- 주문 테이블 명 tbl_orders
create table tbl_orders(
   oseq number PRIMARY KEY,		 -- 주문번호
   id varchar2(20) 	, 			-- 주문자 아이디 , tbl_member 테이블의 기본키의 id컬럼
   indate date default sysdate		-- 주문일			  
)TABLESPACE macaronics ;  
-- tbl_orders 시퀀스 생성
create SEQUENCE orders_seq 
 START WITH 1
 INCREMENT BY 1
 NOMAXVALUE 
 NOCYCLE ; 
 
 
-- tbl_orders 외래키 제약 조건 추가 
alter table TBL_ORDERS 
add CONSTRAINT TBL_ORDERS_id_fk FOREIGN KEY (id)
REFERENCES tbl_member(id) on DELETE CASCADE ;
-- 주문 상세 테이블 생성
create table tbl_order_detail(
	
	odseq number PRIMARY KEY , -- 주문 상세번호  order_detail_seq 시퀀스 객체로 자동 일련 번호 부여
	oseq number ,			--  FK 주문번호 tbl_orders 테이블의 기본 키인 oseq 컬럼
	pseq number ,			--  FK 상품번호 tbl_product 테이블릐 기본 키인 pseq 컬럼
	quantity number,		-- 주문수량
	result char(1) 	DEFAULT  1  -- 처립여부 1: 미처리 2 : 처리
)TABLESPACE macaronics ;  
-- 주문 상세 테이블 시퀀스 생성
create SEQUENCE order_detail_seq
START WITH 1
INCREMENT by 1
NOMAXVALUE 
NOCACHE 
NOCYCLE;
-- TBL_ORDER_DETAIL oseq 외래키 제약 조건 추가 
alter table TBL_ORDER_DETAIL
add CONSTRAINT tbl_order_detail_oseq_FK FOREIGN key(oseq)
REFERENCES tbl_orders(oseq) on DELETE CASCADE ;
-- TBL_ORDER_DETAIL pseq 외래키 제약 조건 추가 
alter table TBL_ORDER_DETAIL
add CONSTRAINT tbl_order_detail_pseq_FK FOREIGN key(pseq)
REFERENCES tbl_product  (pseq) on DELETE CASCADE ;
-- 테이블 명 tbl_qna 생성
create table tbl_qna(
	
	qseq number PRIMARY KEY , -- 글번호  qna_seq 시퀀스 객체로 자동 일려번호 부여
	subject VARCHAR2(30) ,	-- 제목 
	content VARCHAR2(3000), -- 문의 내용
	reply VARCHAR2(3000),	-- 답변 내용
	id VARCHAR2(20),		-- 작성자 아이디 member 테이블의 기본키인 id 컬럼
	rep char(1) default '1',			-- 답변 유무  1:답변 무 2:답변 유
	indate date default sysdate
)TABLESPACE macaronics ;  
-- 테이블 명 tbl_qna 시퀀스 생성
CREATE SEQUENCE qna_seq
START WITH 1 
INCREMENT by 1
NOMAXVALUE 
NOCYCLE 
NOCACHE ;
-- tbl_qna id 외래키 제약조건 추가
alter TABLE TBL_QNA
add CONSTRAINT tbl_qna_id_FK FOREIGN KEY (id)
REFERENCES tbl_member (id) on delete CASCADE ;
-- 카트 뷰 생성 
create or replace view cart_view
as
select o.cseq, o.id, o.pseq, m.name mname, p.name pname, p.image,
o.quantity, o.indate, p.price2, o.result 
from tbl_cart o, tbl_member m, tbl_product p 
where o.id = m.id and o.pseq = p.pseq
and result='1';
-- 주문 뷰 생성  ( 주문, 주문상세 회원, 상품  조인 ) 
create or replace view order_view
as
select d.odseq, o.oseq, o.id, o.indate, d.pseq,d.quantity, m.name mname,
m.zip_num, m.address, m.phone, p.name pname, p.price2, d.result   
from tbl_orders o, tbl_order_detail d, tbl_member m, tbl_product p 
where o.oseq=d.oseq and o.id = m.id and d.pseq = p.pseq;
 
 
           
-- 베스트 상품 뷰 생성  (상품 테이블에서 베스트인경우만 추출 )
create or replace view best_pro_view
as
select pseq, name, price2, image 
from( select rownum, pseq, name, price2, image 
      from tbl_product  
      where bestyn='y' 
      order by indate desc)
where  rownum <=12;
-- 신상품 상품 뷰 생성 (상품 테이블에서 신상품 경우만 추출 )
create or replace view new_pro_view
as
select pseq, name, price2, image 
from( select rownum, pseq, name, price2, image 
      from tbl_product  
      where useyn='y' 
      order by indate desc)
where  rownum <=12;
데이터베이스를 생성 했으면 다음과 같이 변경하자.
sever.xml 에서 프로젝트를 실행하여 생긴 Context 태그를 찾아 Resource
다음과 같이 추가하자.
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" loginTimeout="10" maxWait="5000" name="jdbc/pool" password="1111" type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:XE" username="macaronics" />
참조 사이트 =>
제작 : macaronics.net - JUHO CHOI
소스 : https://github.com/braverokmc79/jsp_sin
 

 
									













 
댓글 ( 4)  
댓글 남기기