DROP TABLE Panier_Ouvrage;
DROP TABLE Livraison;


CREATE TABLE Auteur 
(
 Idauteur INTEGER PRIMARY KEY,
 Nom VARCHAR(20),
 Prenom VARCHAR(20),
 Datenaissance DATE
);

CREATE TABLE Livraison
(
 Idlivraison INTEGER PRIMARY KEY,
 Type VARCHAR2(20),
 Condition VARCHAR2(20),
 Prix INTEGER
);

CREATE TABLE EDITEUR
(
 Idediteur INTEGER PRIMARY KEY,
 Nom VARCHAR2(20),
 Site VARCHAR2(20)
);

CREATE TABLE THEME
(
 Idtheme INTEGER PRIMARY KEY,
 Nom VARCHAR2(20),
 Descriptif VARCHAR2(100)
);

CREATE TABLE Client
(
 Idclient INTEGER PRIMARY KEY,
 Nom VARCHAR2(20),
 Prenom VARCHAR2(20),
 Num_compte INTEGER,
 Adresse VARCHAR2(20)
);

CREATE TABLE Ouvrage
(
 ISBN integer PRIMARY KEY,
 Auteurouvrage INTEGER,
 Livreur INTEGER,
 Idedit INTEGER,
 Idthem INTEGER,
 Titre VARCHAR2(30),
 DateParution DATE,
 Prix INTEGER, 
 Nbpage INTEGER,
 Langue VARCHAR2(20),
 Disponibilite INTEGER,
 QteStock INTEGER,
 Note integer,
 Couverture CLOB,
 Cdrom INTEGER,
 Resume BLOB,
 constraint pk_auteur_ouvrage foreign key(Auteurouvrage) references Auteur(Idauteur),
 constraint pk_livraison_ouvrage foreign key(Livreur) references Livraison(Idlivraison),
 constraint pk_editeur_ouvrage foreign key(Idedit) references EDITEUR(Idediteur),
 constraint pk_theme_ouvrage foreign key(Idthem) references THEME(Idtheme)
);

CREATE TABLE PANIER
(
 Idpanier INTEGER PRIMARY KEY,
 Reference INTEGER,
 IdPanierCli INTEGER,
 constraint pk_client_panier foreign key(IdPanierCli) references CLIENT(Idclient),
 constraint pk_ouvrage_panier foreign key(Reference) references OUVRAGE(ISBN) ON DELETE CASCADE
);

CREATE TABLE Panier_Ouvrage
(
 Idoeuvre INTEGER,
 Idpan INTEGER,
 Quantite INTEGER,
 constraint pk_recupisbn foreign key(Idoeuvre) references Ouvrage(ISBN),
 constraint pk_recupidpanier foreign key(Idpan) references PANIER(Idpanier),
 CONSTRAINT PanierOeuvreUnique UNIQUE (Idoeuvre,Idpan)
);


\
