L'analyse ne sera pas présentée ici. Nous nous contenterons de donner la structure de la base.
La table villes contient les renseignements sur les villes :
CREATE TABLE villes (
codepostal VARCHAR(6) PRIMARY KEY,
ville VARCHAR(50)
);
La table typevoiries contient les renseignements sur les types de voiries (rue, boulevard, avenue, etc.) :
CREATE TABLE typevoiries (
codetypevoirie INTEGER PRIMARY KEY,
typevoirie VARCHAR(20)
);
La table voiries contient les renseignements sur les voiries :
CREATE TABLE voiries (
codevoirie INTEGER PRIMARY KEY,
reftypevoirie INTEGER NOT NULL,
nomvoirie VARCHAR(100),
codepostal VARCHAR(6) NOT NULL,
FOREIGN KEY (reftypevoirie) REFERENCES typevoiries(codetypevoirie),
FOREIGN KEY (codepostal) REFERENCES villes(codepostal)
);
La table niveauautorisations contient les renseignements sur les niveaux d'autorisation :
CREATE TABLE niveauautorisations (
codeniveauautorisation INTEGER PRIMARY KEY,
niveau INTEGER,
autorisation VARCHAR(20)
);
La table badges contient les renseignements sur les personnes possédant un badge (joueurs et logistiques) :
CREATE TABLE badges (
numbadge INTEGER PRIMARY KEY,
motdepasse VARCHAR(20),
nom VARCHAR(50),
prenom VARCHAR(50),
refniveauautorisation INTEGER NOT NULL,
FOREIGN KEY (refniveauautorisation) REFERENCES niveauautorisations(codeniveauautorisation)
);
La table joueurs contient les renseignements sur les joueurs :
CREATE TABLE joueurs (
numbadge INTEGER PRIMARY KEY,
datenaiss DATE,
sexe VARCHAR(1),
licence varchar(10),
inscritjusque DATE,
adressenum VARCHAR(10),
refvoirie INTEGER NOT NULL,
telfixe VARCHAR(20),
telmobile VARCHAR(20),
classementofficiel VARCHAR(20),
pointsdefis INTEGER,
dernieredateprison DATE,
FOREIGN KEY (refvoirie) REFERENCES voiries(codevoirie),
FOREIGN KEY (numbadge) REFERENCES badges(numbadge)
);
La table acces contient les renseignements sur les accès aux salles :
CREATE TABLE acces (
refbadge INTEGER,
instantacces TIMESTAMP,
primary key (refbadge,instantacces),
FOREIGN KEY (refbadge) REFERENCES badges(numbadge)
);
La table reservations contient les renseignements sur les réservations de courts :
CREATE TABLE reservations (
codereservations INTEGER PRIMARY KEY,
refreservant INTEGER NOT NULL,
refinvite INTEGER NOT NULL,
court VARCHAR(4),
datereservation DATE,
heurereservation INTEGER,
instantvalidation TIME,
FOREIGN KEY (refreservant) REFERENCES joueurs(numbadge),
FOREIGN KEY (refinvite) REFERENCES joueurs(numbadge)
);
La table matchs contient les renseignements sur les matchs :
CREATE TABLE matchs (
codematchs INTEGER PRIMARY KEY,
refvainqueur INTEGER NOT NULL,
refperdant INTEGER NOT NULL,
datematch DATE,
heurematch INTEGER,
scorevainqueur INTEGER,
scoreperdant INTEGER,
FOREIGN KEY (refvainqueur) REFERENCES joueurs(numbadge),
FOREIGN KEY (refperdant) REFERENCES joueurs(numbadge)
);
La table categories contient les renseignements sur les catégories de joueurs :
CREATE TABLE categories (
codecategories VARCHAR(1) PRIMARY KEY,
nomcategorie VARCHAR(30),
agemini INTEGER,
agemaxi INTEGER,
accesautorise BOOLEAN,
reservationautorisee BOOLEAN,
eclairageautorise BOOLEAN
);
La table bornesreservations contient les renseignements sur les heures de réservations possibles pour chaque jour :
CREATE TABLE bornesreservations (
refcategories VARCHAR(1) NOT NULL,
joursemaine VARCHAR(15),
heuredebut INTEGER,
heurefin INTEGER,
PRIMARY KEY (refcategories,joursemaine),
FOREIGN KEY (refcategories) REFERENCES categories(codecategories)
);
La table parametres contient les renseignements sur les paramètres de l'application :
CREATE TABLE parametres (
nomparametre VARCHAR(40) PRIMARY KEY,
valeur VARCHAR(50)
);