-- Automatically generated by Gerwin
--
-- Project CasDAstre
-- From file: /Users/warbrain/Sites/CasDAstre/sql/MCDTrac.ger
-- By: Anonymous GNUdist
--
-- Using output format: mysql



CREATE TABLE Magasinier (
      id_magasinier     int NOT NULL,
      nom     varchar(32),
      prenom     varchar(32),
      adresse     varchar(32),
      telephone     varchar(10),
      fax     varchar(10),
      id_site     int NOT NULL
);


ALTER TABLE Magasinier ADD PRIMARY KEY (id_magasinier);



CREATE TABLE Site (
      id_site     int NOT NULL,
      nom     varchar(32),
      adresse     varchar(32),
      telephone     int,
      fax     int
);


ALTER TABLE Site ADD PRIMARY KEY (id_site);



CREATE TABLE Ligne_d_achat (
      numero_lda     int NOT NULL,
      numero_da     int NOT NULL,
      reference_interne     varchar(32),
      quantite     float
);


ALTER TABLE Ligne_d_achat ADD PRIMARY KEY (numero_lda);



CREATE TABLE Demande_d_achat (
      date     date,
      numero_da     int NOT NULL,
      id_magasinier     int NOT NULL
);


ALTER TABLE Demande_d_achat ADD PRIMARY KEY (numero_da);



CREATE TABLE Produit_Interne (
      reference_interne     varchar(32) NOT NULL,
      designation     varchar(32),
      unite     varchar(8),
      reference_fam     int NOT NULL
);


ALTER TABLE Produit_Interne ADD PRIMARY KEY (reference_interne);



CREATE TABLE Acheteur (
      id_acheteur     int NOT NULL,
      nom     varchar(32),
      prenom     varchar(32),
      adresse     varchar(32),
      telephone     varchar(10),
      fax     varchar(10),
      id_site     int
);


ALTER TABLE Acheteur ADD PRIMARY KEY (id_acheteur);



CREATE TABLE Ligne_de_commande (
      numero_ldc     int NOT NULL,
      numero_com     int NOT NULL,
      reference_fournisseur     varchar(32) NOT NULL,
      quantite     float
);


ALTER TABLE Ligne_de_commande ADD PRIMARY KEY (numero_ldc);



CREATE TABLE Livraison (
      numero_liv     varchar(32) NOT NULL,
      numero_com     int NOT NULL,
      numero_recept     int NOT NULL,
      id_fournisseur     varchar(32),
      date     date,
      id_site     int
);


ALTER TABLE Livraison ADD PRIMARY KEY (numero_liv);



CREATE TABLE LigneLivraison (
      numero_lv     varchar(32) NOT NULL,
      numero_ldc     int NOT NULL,
      reference_fournisseur     varchar(32) NOT NULL,
      quantite     float,
      numero_lr     int NOT NULL,
      numero_liv     varchar(32) NOT NULL
);


ALTER TABLE LigneLivraison ADD PRIMARY KEY (numero_lv);



CREATE TABLE Commande (
      date     date,
      date_livraison     date,
      heure_livr_min     time,
      heure_livr_max     time,
      numero_com     int NOT NULL,
      id_acheteur     int,
      id_fournisseur     varchar(32) NOT NULL
);


ALTER TABLE Commande ADD PRIMARY KEY (numero_com);



CREATE TABLE ProduitFour (
      reference_fournisseur     varchar(32) NOT NULL,
      designation     varchar(32),
      prix     float,
      unite     varchar(8),
      id_fournisseur     varchar(32) NOT NULL,
      reference_interne     varchar(32) NOT NULL
);


ALTER TABLE ProduitFour ADD PRIMARY KEY (reference_fournisseur);



CREATE TABLE Fournisseur (
      nom     varchar(32),
      adresse     varchar(32),
      telephone     int,
      fax     int,
      SIRET     varchar(32),
      SIREN     varchar(32),
      id_fournisseur     varchar(32) NOT NULL,
      reference_fam     int NOT NULL
);


ALTER TABLE Fournisseur ADD PRIMARY KEY (id_fournisseur);



CREATE TABLE LigneReception (
      numero_lr     int NOT NULL,
      numero_recept     int NOT NULL
);


ALTER TABLE LigneReception ADD PRIMARY KEY (numero_lr);



CREATE TABLE Reception (
      numero_recept     int NOT NULL
);


ALTER TABLE Reception ADD PRIMARY KEY (numero_recept);



CREATE TABLE Etats_LA (
      Date     date,
      Libelle     varchar(32),
      id_ela     int NOT NULL,
      numero_lda     int,
      numero_ldc     int,
      numero_lr     int NOT NULL,
      quantite_recue     float
);


ALTER TABLE Etats_LA ADD PRIMARY KEY (id_ela);



CREATE TABLE Famille_de_produit (
      nom_fam     varchar(32),
      reference_fam     int NOT NULL,
      id_acheteur     int NOT NULL
);


ALTER TABLE Famille_de_produit ADD PRIMARY KEY (reference_fam);



CREATE TABLE Concerne (
      numero_da     int NOT NULL,
      numero_com     int NOT NULL
);


ALTER TABLE Concerne ADD PRIMARY KEY (numero_da,numero_com);



CREATE TABLE LA_donne_lieu_a_LC (
      numero_lda     int NOT NULL,
      numero_ldc     int NOT NULL,
      quantite     float
);


ALTER TABLE LA_donne_lieu_a_LC ADD PRIMARY KEY (numero_lda,numero_ldc);



CREATE TABLE Stocker (
      id_site     int NOT NULL,
      reference_interne     varchar(32) NOT NULL,
      stock     float,
      seuil_min     float,
      seuil_max     float
);


ALTER TABLE Stocker ADD PRIMARY KEY (id_site,reference_interne);



ALTER TABLE Magasinier ADD FOREIGN KEY (id_site) REFERENCES Site (id_site);




ALTER TABLE Ligne_d_achat ADD FOREIGN KEY (numero_da) REFERENCES Demande_d_achat (numero_da);
ALTER TABLE Ligne_d_achat ADD FOREIGN KEY (reference_interne) REFERENCES Produit_Interne (reference_interne);


ALTER TABLE Demande_d_achat ADD FOREIGN KEY (id_magasinier) REFERENCES Magasinier (id_magasinier);


ALTER TABLE Produit_Interne ADD FOREIGN KEY (reference_fam) REFERENCES Famille_de_produit (reference_fam);


ALTER TABLE Acheteur ADD FOREIGN KEY (id_site) REFERENCES Site (id_site);


ALTER TABLE Ligne_de_commande ADD FOREIGN KEY (numero_com) REFERENCES Commande (numero_com);
ALTER TABLE Ligne_de_commande ADD FOREIGN KEY (reference_fournisseur) REFERENCES ProduitFour (reference_fournisseur);


ALTER TABLE Livraison ADD FOREIGN KEY (numero_com) REFERENCES Commande (numero_com);
ALTER TABLE Livraison ADD FOREIGN KEY (numero_recept) REFERENCES Reception (numero_recept);
ALTER TABLE Livraison ADD FOREIGN KEY (id_fournisseur) REFERENCES Fournisseur (id_fournisseur);
ALTER TABLE Livraison ADD FOREIGN KEY (id_site) REFERENCES Site (id_site);


ALTER TABLE LigneLivraison ADD FOREIGN KEY (numero_ldc) REFERENCES Ligne_de_commande (numero_ldc);
ALTER TABLE LigneLivraison ADD FOREIGN KEY (reference_fournisseur) REFERENCES ProduitFour (reference_fournisseur);
ALTER TABLE LigneLivraison ADD FOREIGN KEY (numero_lr) REFERENCES LigneReception (numero_lr);
ALTER TABLE LigneLivraison ADD FOREIGN KEY (numero_liv) REFERENCES Livraison (numero_liv);


ALTER TABLE Commande ADD FOREIGN KEY (id_acheteur) REFERENCES Acheteur (id_acheteur);
ALTER TABLE Commande ADD FOREIGN KEY (id_fournisseur) REFERENCES Fournisseur (id_fournisseur);


ALTER TABLE ProduitFour ADD FOREIGN KEY (id_fournisseur) REFERENCES Fournisseur (id_fournisseur);
ALTER TABLE ProduitFour ADD FOREIGN KEY (reference_interne) REFERENCES Produit_Interne (reference_interne);


ALTER TABLE Fournisseur ADD FOREIGN KEY (reference_fam) REFERENCES Famille_de_produit (reference_fam);


ALTER TABLE LigneReception ADD FOREIGN KEY (numero_recept) REFERENCES Reception (numero_recept);




ALTER TABLE Etats_LA ADD FOREIGN KEY (numero_lda) REFERENCES Ligne_d_achat (numero_lda);
ALTER TABLE Etats_LA ADD FOREIGN KEY (numero_ldc) REFERENCES Ligne_de_commande (numero_ldc);
ALTER TABLE Etats_LA ADD FOREIGN KEY (numero_lr) REFERENCES LigneReception (numero_lr);


ALTER TABLE Famille_de_produit ADD FOREIGN KEY (id_acheteur) REFERENCES Acheteur (id_acheteur);


ALTER TABLE Concerne ADD FOREIGN KEY (numero_da) REFERENCES Demande_d_achat (numero_da);
ALTER TABLE Concerne ADD FOREIGN KEY (numero_com) REFERENCES Commande (numero_com);


ALTER TABLE LA_donne_lieu_a_LC ADD FOREIGN KEY (numero_lda) REFERENCES Ligne_d_achat (numero_lda);
ALTER TABLE LA_donne_lieu_a_LC ADD FOREIGN KEY (numero_ldc) REFERENCES Ligne_de_commande (numero_ldc);


ALTER TABLE Stocker ADD FOREIGN KEY (id_site) REFERENCES Site (id_site);
ALTER TABLE Stocker ADD FOREIGN KEY (reference_interne) REFERENCES Produit_Interne (reference_interne);


