CREATE TABLE VILLE
(
id_ville INT NOT NULL,
nom_ville VARCHAR(32) NOT NULL,
CONSTRAINT VILLE_PK PRIMARY KEY (id_ville)
) ;
CREATE TABLE COMPTEUR
(
id_compteur INT NOT NULL,
numero_compteur VARCHAR(32) NOT NULL,
CONSTRAINT COMPTEUR_PK PRIMARY KEY (id_compteur),
CONSTRAINT COMPTEUR_AK UNIQUE (numero_compteur)
) ;
CREATE TABLE VILLE_COMPTEUR
(
id_compteur INT NOT NULL,
id_ville INT NOT NULL,
CONSTRAINT VILLE_COMPTEUR_PK PRIMARY KEY (id_compteur, id_ville),
CONSTRAINT VILLE_COMPTEUR_COMPTEUR_FK FOREIGN KEY (id_compteur)
REFERENCES COMPTEUR (id_compteur),
CONSTRAINT VILLE_COMPTEUR_VILLE_FK FOREIGN KEY (id_ville)
REFERENCES VILLE (id_ville)
) ;
CREATE TABLE CONSOMMATION
(
id_compteur INT NOT NULL,
id_ville_export INT NOT NULL,
id_ville_import INT NOT NULL,
date_conso DATE NOT NULL,
index_initial INT NOT NULL,
index_final INT NOT NULL,
CONSTRAINT CONSOMMATION_PK PRIMARY KEY (id_compteur, id_ville_export, id_ville_import, date_conso),
CONSTRAINT CONSOMMATION_VILLE_COMPTEUR_EXPORT_FK FOREIGN KEY (id_compteur, id_ville_import)
REFERENCES VILLE_COMPTEUR (id_compteur, id_ville),
CONSTRAINT CONSOMMATION_VILLE_COMPTEUR_IMPORT_FK FOREIGN KEY (id_compteur, id_ville_export)
REFERENCES VILLE_COMPTEUR (id_compteur, id_ville)
) ;
CREATE TABLE UTILISATEUR
(
id_utilisateur INT NOT NULL,
id_ville INT NOT NULL,
nom_utilisateur VARCHAR(32) NOT NULL,
CONSTRAINT UTILISATEUR_PK PRIMARY KEY (id_utilisateur),
CONSTRAINT UTILISATEUR_VILLE_FK FOREIGN KEY (id_ville)
REFERENCES VILLE (id_ville)
) ;
INSERT INTO UTILISATEUR (id_utilisateur, id_ville, nom_utilisateur) VALUES
(1, 1, 'Fernand'), (2, 2, 'Raoul'), (3, 3, 'Paul'), (4, 4, 'Pascal')
;
INSERT INTO VILLE (id_ville, nom_ville) VALUES
(1, 'ville v1'), (2, 'ville v2'), (3, 'ville v3'), (4, 'ville v4'), (5, 'ville v5')
;
INSERT INTO COMPTEUR (id_compteur, numero_compteur) VALUES
(1, 'compteur c1'), (2, 'compteur c2'), (3, 'compteur c3'), (4, 'compteur c4'), (5, 'compteur c5')
;
INSERT INTO VILLE_COMPTEUR (id_compteur, id_ville) VALUES
(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 4), (3, 5)
;
INSERT INTO CONSOMMATION (id_compteur, id_ville_export, id_ville_import, date_conso, index_initial, index_final) VALUES
(1, 1, 2, '2015-01-31', 1000, 1500)
, (1, 1, 2, '2015-02-28', 1400, 2000)
, (1, 1, 3, '2015-01-31', 1700, 2300)
, (1, 2, 3, '2015-01-31', 2400, 2500)
, (1, 2, 1, '2015-02-28', 1100, 1200)
, (1, 3, 1, '2015-02-28', 1300, 1400)
, (2, 1, 2, '2015-01-31', 1000, 1500)
, (2, 1, 2, '2015-02-28', 2400, 2700)
;
SELECT * FROM CONSOMMATION ;
Partager