drop table Contient;
drop table Tranche;
drop table Produit;
drop table Commande;
drop table Paiement;
drop table Delai;
drop table Client;

create table Client (
	client_id number,
	nom varchar2(30),
	adresse varchar2(50),
	Constraint pk_client primary key (client_id));
	
create table Delai(
	delai_id number,
	Prop_30j float,
	Prop_60j float,
	Prop_90j float,
	Constraint pk_delai primary key (delai_id),
	Constraint pourcentage1 check ( Prop_30j between 0 AND 1),
	Constraint pourcentage2 check ( Prop_60j between 0 AND 1),
	Constraint pourcentage3 check ( Prop_90j between 0 AND 1),
	Constraint somme1 check ( Prop_90j + Prop_60j + Prop_30j = 1)
);

create table Paiement(
	paiement_id number,
	Mode_Paiement varchar2(30),
	Constraint pk_paiement primary key (paiement_id),
	Constraint lib_paiement check ((Mode_Paiement like 'Virement') or (Mode_Paiement like 'Cheque') or (Mode_Paiement like 'LCR'))
);
	
create table commande(
	commande_id number,
	date_commande date,
	date_livraison date,
	client_id number,
	paiement_id number,
	delai_id number,
	constraint pk_commande primary key (commande_id),
	constraint fk_commande1 foreign key (client_id) references Client(client_id),
	constraint fk_commande2 foreign key (paiement_id) references Paiement(paiement_id),
	constraint fk_commande3 foreign key (delai_id) references Delai(delai_id)
);	

create table produit(
	produit_id number,
	categorie varchar2(30),
	nom varchar2(30),
	Constraint pk_produit primary key (produit_id)
);

create table tranche(
	tranche_id number,
	tarif_unitaire float,
	Quant_Min integer,
	Quant_Max integer,
	produit_id number,
	Constraint pk_tranche primary key (tranche_id),
	Constraint fk_tranche1 foreign key (produit_id) references produit(produit_id),
	Constraint pos check ( Quant_Min > 0),
	Constraint sup check ( Quant_Max > Quant_Min)
);



create table Contient(
	commande_id number,
	produit_id number,
	quantite integer,
	Constraint pk_contient primary key (commande_id,produit_id),
	Constraint fk_contient1 foreign key (commande_id) references Commande(commande_id),
	Constraint fk_contient2 foreign key (produit_id) references Produit(produit_id)
);


