Commit f3a760cf authored by Clement Lucas's avatar Clement Lucas
Browse files

Delete python.py

parent a3d69328
import psycopg2
HOST = 'tuxa.sme.utc'
DATABASE = ''
PASSWORD = ''
USER = ''
connexion = psycopg2.connect(f"dbname='{DATABASE}' user ='{USER}' host='{HOST}' password='{PASSWORD}'")
cur = connexion.cursor()
sql = """
CREATE TABLE Ville (
nom_ville VARCHAR UNIQUE NOT NULL,
PRIMARY KEY(nom_ville)
);
CREATE TABLE Gare (
id_gare INTEGER UNIQUE NOT NULL,
nom_gare VARCHAR NOT NULL,
nom_ville VARCHAR NOT NULL REFERENCES Ville(nom_ville),
adresse VARCHAR NOT NULL,
zone_horaire INTEGER NOT NULL,
PRIMARY KEY(id_gare)
);
CREATE TABLE Ligne (
id_ligne INTEGER UNIQUE NOT NULL,
nom_ligne VARCHAR NOT NULL,
origine INTEGER REFERENCES Gare(id_gare) NOT NULL,
terminus INTEGER REFERENCES Gare(id_gare) NOT NULL,
PRIMARY KEY(id_ligne)
);
CREATE TYPE typeTrain AS ENUM('TGV', 'TER');
CREATE TABLE Train (
numero INTEGER UNIQUE NOT NULL,
type_train typeTrain NOT NULL,
places_max INTEGER NOT NULL,
premiere_class BOOLEAN NOT NULL,
vitesse_max INTEGER NOT NULL,
PRIMARY KEY(numero)
);
CREATE TABLE Arret (
---On ajoute une cle artificielle unique pour povoir l'instancier
id_arret INTEGER UNIQUE NOT NULL,
position INTEGER NOT NULL,
gare INTEGER REFERENCES Gare(id_gare) NOT NULL,
ligne INTEGER REFERENCES Ligne(id_ligne) NOT NULL,
PRIMARY KEY(id_arret)
);
CREATE TYPE typeJour AS ENUM('lundi', 'mardi', 'mecredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');
CREATE TABLE Calendrier (
jour typeJour UNIQUE NOT NULL,
PRIMARY KEY(jour)
);
CREATE TYPE typeHoraire AS ENUM('régulier', 'exceptionnel');
CREATE TYPE typeExcept AS ENUM('ajout', 'suppression');
CREATE TABLE Horaires (
id_horaires SERIAL,
id_train INTEGER NOT NULL REFERENCES Train(numero),
depart TIME NOT NULL,
arrivee TIME NOT NULL,
arret INTEGER NOT NULL REFERENCES Arret(id_arret) NOT NULL,
date_horaires DATE NOT NULL,
jour typeJour REFERENCES Calendrier(jour) NOT NULL,
type_horaire typeHoraire NOT NULL NOT NULL,
type_except typeExcept,
PRIMARY KEY(id_horaires),
CHECK (NOT(type_horaire = 'régulier') OR type_except = NULL)
);
CREATE TYPE typePaiement AS ENUM('carte', 'espèce', 'chèque');
CREATE TYPE typeStatus AS ENUM('voyageur', 'grand', 'plus');
CREATE TYPE typeVoyageur AS ENUM('occasionnel', 'régulier');
CREATE TABLE Voyageur (
id_voyageur INTEGER UNIQUE NOT NULL,
nom VARCHAR NOT NULL,
prenom VARCHAR NOT NULL,
adresse VARCHAR NOT NULL,
tel BIGINT NOT NULL,
paiement typePaiement NOT NULL,
id_carte INTEGER,
status_voyageur typeStatus,
type_voyageur typeVoyageur,
PRIMARY KEY(id_voyageur),
CHECK (NOT(type_voyageur = 'occasionnel') OR (id_carte = NULL AND status_voyageur = NULL))
);
CREATE TABLE Billet (
id_billet SERIAL,
prix NUMERIC NOT NULL,
assurance BOOLEAN NOT NULL,
id_voyageur INTEGER REFERENCES Voyageur(id_voyageur) NOT NULL,
PRIMARY KEY(id_billet)
);
CREATE TABLE Trajet (
id_trajet SERIAL,
id_billet INTEGER REFERENCES Billet(id_billet) NOT NULL,
numero_place INTEGER NOT NULL,
duree TIME NOT NULL,
horaire_depart INTEGER REFERENCES Horaires(id_horaires) NOT NULL,
horaire_arrivee INTEGER REFERENCES Horaires(id_horaires) NOT NULL,
PRIMARY KEY(id_trajet)
);
"""
cur.execute(sql)
connexion.commit()
row = cur.fetchone()
sql = """
INSERT INTO Ville(nom_ville) VALUES ('Compiègne');
INSERT INTO Ville(nom_ville) VALUES ('Paris');
INSERT INTO Ville(nom_ville) VALUES ('Laon');
INSERT INTO Gare(id_gare, nom_gare, nom_ville, adresse, zone_horaire) VALUES (1, 'Gare du Nord', 'Paris'
, '18 Rue de Dunkerque, 75010 Paris', 2);
INSERT INTO Gare(id_gare, nom_gare, nom_ville, adresse, zone_horaire) VALUES (2, 'Gare de Compiègne', 'Compiègne'
, 'Gare SNCF, Place de la Gare, 60200 Compiègne', 2);
INSERT INTO Gare(id_gare, nom_gare, nom_ville, adresse, zone_horaire) VALUES (3, 'Gare de Laon', 'Laon'
, '02000 Laon', 2);
INSERT INTO Ligne(id_ligne, nom_ligne, origine, terminus) VALUES(15, 'K15', 1, 3);
INSERT INTO Train(numero, type_train, places_max, premiere_class, vitesse_max)
VALUES (1, 'TER', 800, true, 80);
INSERT INTO Arret(id_arret, position, gare, ligne) VALUES (0, 1, 1, 15);
INSERT INTO Arret(id_arret, position, gare, ligne) VALUES (1, 2, 2, 15);
INSERT INTO Arret(id_arret, position, gare, ligne) VALUES (2, 3, 3, 15);
INSERT INTO Calendrier(jour) VALUES ('lundi'), ('mardi'), ('mecredi'), ('jeudi'), ('vendredi'), ('samedi'), ('dimanche');
INSERT INTO Horaires(id_horaires, id_train, depart, arrivee, arret, date_horaires, jour, type_horaire, type_except)
VALUES (1, 1, '12:55:00', '13:00:00', 0, '2021-05-09', 'lundi', 'régulier', NULL);
INSERT INTO Horaires(id_horaires, id_train, depart, arrivee, arret, date_horaires, jour, type_horaire, type_except)
VALUES (2, 1, '13:50:00', '14:10:00', 1, '2021-05-09', 'lundi', 'régulier', NULL);
INSERT INTO Horaires(id_horaires, id_train, depart, arrivee, arret, date_horaires, jour, type_horaire, type_except)
VALUES (3, 1, '15:15:00', '15:20:00', 2, '2021-05-09', 'lundi', 'régulier', NULL);
INSERT INTO Voyageur(id_voyageur, nom, prenom, adresse, tel, paiement, id_carte, status_voyageur, type_voyageur)
VALUES (0, 'TONTON', 'Tintin', '60200 Compiègne', 0712344556, 'espèce', NULL, NULL, 'occasionnel');
INSERT INTO Billet (prix, assurance, id_voyageur) VALUES (15.5, false, 0);
INSERT INTO Trajet (id_billet, numero_place, duree, horaire_depart, horaire_arrivee) VALUES (1, 280, '00:50:00', 1, 2);
"""
cur.execute(sql)
row = cur.fetchone()
connexion.commit()
connexion.close()
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment