Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Francois Mares
NF18 - Projet SCF - Groupe 5
Commits
feb460f0
Commit
feb460f0
authored
May 09, 2021
by
David Gustavo De La Rocha Ramirez
Browse files
Update scf.sql
parent
be0a850c
Changes
1
Hide whitespace changes
Inline
Side-by-side
scf.sql
View file @
feb460f0
...
...
@@ -6,20 +6,20 @@ CREATE TABLE Ville (
---Gare (#nom_gare: varchar, #nom_ville=>Ville, adresse: varchar, zone_horaire: int) ;
CREATE
TABLE
Gare
(
id_gare
SERIA
L
,
id_gare
INTEGER
UNIQUE
NOT
NUL
L
,
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
)
PRIMARY
KEY
(
id_gare
)
);
---Ligne (#id_ligne: integer, nom_ligne: varchar, origine=>Gare, terminus=>Gare) ;
CREATE
TABLE
Ligne
(
id_ligne
INTEGER
NOT
NULL
UNIQUE
,
nom_ligne
VARCHAR
,
origine
INTEGER
REFERENCES
Gare
(
id_gare
),
terminus
INTEGER
REFERENCES
Gare
(
id_gare
),
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
)
);
...
...
@@ -27,17 +27,17 @@ CREATE TABLE Ligne (
CREATE
TYPE
typeTrain
AS
ENUM
(
'TGV'
,
'TER'
);
CREATE
TABLE
Train
(
numero
INTEGER
UNIQUE
NOT
NULL
,
type_train
typeTrain
,
places_max
INTEGER
,
premiere_class
BOOLEAN
,
vitesse_max
INTEGER
,
type_train
typeTrain
NOT
NULL
,
places_max
INTEGER
NOT
NULL
,
premiere_class
BOOLEAN
NOT
NULL
,
vitesse_max
INTEGER
NOT
NULL
,
PRIMARY
KEY
(
numero
)
);
---Arrêt ( #position:integer, #gare=>Gare, #ligne=>Ligne);
CREATE
TABLE
Arret
(
---On ajoute une cle artificielle unique pour povoir l'instancier
id_arret
SERIA
L
,
id_arret
INTEGER
UNIQUE
NOT
NUL
L
,
position
INTEGER
NOT
NULL
,
gare
INTEGER
REFERENCES
Gare
(
id_gare
)
NOT
NULL
,
ligne
INTEGER
REFERENCES
Ligne
(
id_ligne
)
NOT
NULL
,
...
...
@@ -58,14 +58,15 @@ CREATE TYPE typeExcept AS ENUM('ajout', 'suppression');
CREATE
TABLE
Horaires
(
id_horaires
SERIAL
,
id_train
INTEGER
NOT
NULL
REFERENCES
Train
(
numero
),
depart
TIME
,
arrivee
TIME
,
arret
INTEGER
NOT
NULL
REFERENCES
Arret
(
id_arret
),
date_horaires
DATE
,
jour
typeJour
REFERENCES
Calendrier
(
jour
),
type_horaire
typeHoraire
NOT
NULL
,
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
)
PRIMARY
KEY
(
id_horaires
),
CHECK
(
NOT
(
type_horaire
=
'régulier'
)
OR
type_except
=
NULL
)
);
---Voyageur(#id_voyageur: int, nom: varchar, prenom: varchar, adresse: varchar,
...
...
@@ -75,24 +76,25 @@ 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
SERIA
L
,
nom
VARCHAR
,
prenom
VARCHAR
,
adresse
VARCHAR
,
tel
BIGINT
,
paiement
typePaiement
,
id_voyageur
INTEGER
UNIQUE
NOT
NUL
L
,
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
)
PRIMARY
KEY
(
id_voyageur
),
CHECK
(
NOT
(
type_voyageur
=
'occasionnel'
)
OR
(
id_carte
=
NULL
AND
status_voyageur
=
NULL
))
);
---Billet(#id_billet: int, prix : reel, assurance : bool, id_voyageur=>Voyageur) ;
CREATE
TABLE
Billet
(
id_billet
SERIAL
,
prix
NUMERIC
,
assurance
BOOLEAN
,
id_voyageur
INTEGER
REFERENCES
Voyageur
(
id_voyageur
),
prix
NUMERIC
NOT
NULL
,
assurance
BOOLEAN
NOT
NULL
,
id_voyageur
INTEGER
REFERENCES
Voyageur
(
id_voyageur
)
NOT
NULL
,
PRIMARY
KEY
(
id_billet
)
);
...
...
@@ -100,10 +102,10 @@ CREATE TABLE Billet (
--- horaire_départ=>Horaires, horaire_arrivée=>Horaires);
CREATE
TABLE
Trajet
(
id_trajet
SERIAL
,
id_billet
INTEGER
NOT
NULL
REFERENCES
Billet
(
id_billet
),
numero_place
INTEGER
,
duree
TIME
,
horaire_depart
INTEGER
REFERENCES
Horaires
(
id_horaires
),
horaire_arrivee
INTEGER
REFERENCES
Horaires
(
id_horaires
),
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
)
);
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment