------------
-- create-bks.sql
--
-- create a bookstore database
--
-- originally from: Ann Burroughs
-- modified by: Sharon Tuttle
-- last modified: 01-28-11 - now create-bks.sql
------------
drop table return;
drop table receipts;
drop table order_needed;
drop table order_detail;
drop table order_sum;
drop table title;
drop table publisher;
create table publisher
(pub_no number(3) NOT NULL,
pub_name varchar2(30) NOT NULL,
pub_city varchar2(15) NOT NULL,
pub_state char(2) NOT NULL,
order_min number(7,2) NOT NULL,
over_min_disc number(3,2) NOT NULL,
CONSTRAINT publisher_pk PRIMARY KEY (pub_no),
CONSTRAINT publisher_check1 CHECK (over_min_disc BETWEEN .0 and .99)
);
create table title
(isbn varchar2(10) NOT NULL,
pub_no number(3) NOT NULL,
title_name varchar2(35) NOT NULL,
author varchar2(30) NOT NULL,
cost number(7,2) NOT NULL,
price number(7,2) NOT NULL,
qty_on_hand number(3) NOT NULL,
order_point number(3) NOT NULL,
order_qty number(3) NOT NULL,
on_order char(1) NOT NULL,
CONSTRAINT title_pk PRIMARY KEY (isbn),
CONSTRAINT title_fk_pub_no FOREIGN KEY (pub_no) REFERENCES publisher(pub_no),
CONSTRAINT title_check1 CHECK (on_order in ('T', 'F'))
);
create table order_needed
(on_key number NOT NULL,
isbn varchar2(10) NOT NULL,
order_qty number(3) NOT NULL,
date_created date NOT NULL,
date_placed date NULL,
CONSTRAINT order_needed_pk PRIMARY KEY (on_key),
CONSTRAINT order_needed_fk_isbn FOREIGN KEY (isbn) REFERENCES title(isbn)
);
create table order_sum
(ord_no number(6) NOT NULL,
pub_no number(3) NOT NULL,
date_placed date NOT NULL,
date_complete date NULL,
CONSTRAINT order_sum_pk PRIMARY KEY (ord_no),
CONSTRAINT order_sum_fk_pub_no FOREIGN KEY (pub_no) REFERENCES publisher(pub_no)
);
create table order_detail
(ord_no number(6) NOT NULL,
line_no number(5) NOT NULL,
isbn varchar2(10) NOT NULL,
order_qty number(3) NOT NULL,
qty_rcvd_todt number(3) NULL,
CONSTRAINT order_detail_pk PRIMARY KEY (ord_no, line_no),
CONSTRAINT order_detail_fk_ord_no FOREIGN KEY (ord_no) REFERENCES order_sum (ord_no),
CONSTRAINT order_detail_fk_isbn FOREIGN KEY (isbn) REFERENCES title(isbn)
);
create table receipts
(rcpt_no number(7) NOT NULL,
ord_no number(6) NOT NULL,
line_no number(5) NOT NULL,
qty_rcvd number(3) NOT NULL,
date_rcvd date NOT NULL,
date_posted date NULL,
CONSTRAINT receipts_pk PRIMARY KEY (rcpt_no),
CONSTRAINT receipts_fk_ord_no_line_no FOREIGN KEY (ord_no, line_no) REFERENCES order_detail (ord_no, line_no)
);
create table return
(return_id number(6) NOT NULL,
pub_no number(3) NOT NULL,
ord_no number(6) NOT NULL,
isbn varchar2(10) NOT NULL,
return_qty number(3) NOT NULL,
date_returned date NOT NULL,
CONSTRAINT return_pk PRIMARY KEY (return_id),
CONSTRAINT return_fk_pub_no FOREIGN KEY (pub_no) REFERENCES publisher(pub_no),
CONSTRAINT return_fk_ord_no FOREIGN KEY (ord_no) references order_sum(ord_no),
CONSTRAINT return_fk_isbn FOREIGN KEY(isbn) references title(isbn)
);
commit;