--- Facturation en SQL

--- Suppression des tables si elles existent déjà
drop table LigneFacture if exists;
drop table Facture if exists;
drop table Client if exists;
drop table Article if exists;

create table Client (
	idClient  integer not null primary key,
	nom varchar(255),
	adresse varchar(1024),
	pointsDeFidelite integer
);

create table Article (
	idArticle integer not null primary key,
	designation varchar(255),
	prixttc	numeric
);

create table Facture (
	idFacture integer not null primary key,
	idClient integer,
	total numeric, -- champ calculé mais conservé dans la facture elle-même.
	foreign key (idClient) references Client	
);

-- Ligne de facture basique.
-- On laisse au lecteur intéressé le soin de gérer correctement la quantité d'article commandés.
create table LigneFacture (
	idLigne integer not null,
	idFacture integer not null,
	idProduit integer not null,
	primary key (idLigne,idFacture)
);

insert into Client values (1, 'Turing', '140, rue de la Nouvelle France\n93100 Montreuil', 0);
insert into Article values (1,'souris', 10);
insert into Article values (2, 'pc1', 400);
insert into Article values (3, 'pc4', 1000);
insert into Article values (4, 'moniteur 19''', 300);
