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
Dimitri Nicolas
AI23 - Projet
Commits
2d9337df
Commit
2d9337df
authored
Jun 25, 2021
by
Dimitri Nicolas
Browse files
Version finale
parents
a1a79b13
b3d3b3d5
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/Menu.py
View file @
2d9337df
...
...
@@ -9,7 +9,7 @@ from PretDataMapper import PretDataMapper
import
datetime
def
UserConnection
():
#permet à l'utilisateur de saisir ces identifiants de connexion
print
(
"---------Bonjour, bienvenue à la biblioth
é
que
!!!
----------"
)
print
(
"---------Bonjour, bienvenue à la biblioth
è
que----------"
)
login
=
input
(
"Entrer votre login:"
)
mdp
=
input
(
"Entrer votre mot de passe:"
)
return
(
login
,
mdp
)
...
...
@@ -26,38 +26,38 @@ def affiche(listTuple:list, headers:Tuple):
print
(
"{:>30s}"
.
format
(
str
(
data
)),
end
=
""
)
print
(
" "
)
def
addAdherent
():
print
(
"--------------Ajout d'un adh
e
rent--------------------------"
)
login
=
input
(
"Entrer un nouveau
x
login
:
"
)
numcarte
=
input
(
"Entrer le numéro de carte
:
"
)
mdp
=
input
(
"Entrer un nouveau
x
mot de pass
se:
"
)
nom
=
input
(
"Entrer votre nom
:
"
)
prenom
=
input
(
"Entrer votre prenom
:
"
)
adresse
=
input
(
"Entrer votre adresse
:
"
)
adressemail
=
input
(
"Entrer votre adresse mail
:
"
)
tel
=
input
(
"Entrer votre numéro de téléphone"
)
dateNaissance
=
datetime
.
strptime
(
input
(
"Entrer votre date de naissance
:
"
))
print
(
"--------------Ajout d'un adh
é
rent--------------------------"
)
login
=
input
(
"Entrer un nouveau login
:
"
)
numcarte
=
input
(
"Entrer le numéro de carte
:
"
)
mdp
=
input
(
"Entrer un nouveau mot de pass
e :
"
)
nom
=
input
(
"Entrer votre nom
:
"
)
prenom
=
input
(
"Entrer votre prenom
:
"
)
adresse
=
input
(
"Entrer votre adresse
:
"
)
adressemail
=
input
(
"Entrer votre adresse mail
:
"
)
tel
=
input
(
"Entrer votre numéro de téléphone
:
"
)
dateNaissance
=
datetime
.
strptime
(
input
(
"Entrer votre date de naissance
:
"
))
return
(
login
,
numcarte
,
mdp
,
nom
,
prenom
,
adresse
,
adressemail
,
tel
,
dateNaissance
)
def
addPersonnel
():
print
(
"--------------Ajout d'un adh
e
rent--------------------------"
)
login
=
input
(
"Entrer un nouveau
x
login
:
"
)
mdp
=
input
(
"Entrer un nouveau
x
mot de pass
se:
"
)
nom
=
input
(
"Entrer votre nom
:
"
)
prenom
=
input
(
"Entrer votre prenom
:
"
)
adresse
=
input
(
"Entrer votre adresse
:
"
)
adressemail
=
input
(
"Entrer votre adresse mail
:
"
)
print
(
"--------------Ajout d'un adh
é
rent--------------------------"
)
login
=
input
(
"Entrer un nouveau login
:
"
)
mdp
=
input
(
"Entrer un nouveau mot de pass
e :
"
)
nom
=
input
(
"Entrer votre nom
:
"
)
prenom
=
input
(
"Entrer votre prenom
:
"
)
adresse
=
input
(
"Entrer votre adresse
:
"
)
adressemail
=
input
(
"Entrer votre adresse mail
:
"
)
return
(
login
,
mdp
,
nom
,
prenom
,
adresse
,
adressemail
)
def
actionAdherent
():
print
(
"------------------------MENU--------------------------------"
)
print
(
"1 : Voir les exemplaires disponibles"
)
print
(
"2 : Voir les explaires que vous avez empruntés"
)
print
(
"-1 :Se déconnecter de
son
compte."
)
print
(
"2 : Voir les ex
em
plaires que vous avez empruntés"
)
print
(
"-1 :
Se déconnecter de
votre
compte."
)
action
=
-
2
while
action
==
-
2
:
try
:
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
except
Exception
:
action
=
-
2
return
(
action
)
...
...
@@ -67,14 +67,14 @@ def actionMember():
print
(
"------------------------MENU--------------------------------"
)
print
(
"1 : Gérer les emprunts."
)
print
(
"2 : Gérer les sanctions."
)
print
(
"3 : Gérer les resources."
)
print
(
"3 : Gérer les res
s
ources."
)
print
(
"4 : Voir les statistiques de la bibliothèque."
)
print
(
"5 : Gérer les utilisateurs."
)
print
(
"-1 :Se déconnecter de son compte."
)
print
(
"-1 :
Se déconnecter de son compte."
)
action
=
-
2
while
action
==
-
2
:
try
:
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
except
Exception
:
action
=
-
2
return
(
action
)
...
...
@@ -88,7 +88,7 @@ def sanction():
action
=
-
2
while
action
==
-
2
:
try
:
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
except
Exception
:
action
=
-
2
return
(
action
)
...
...
@@ -102,22 +102,22 @@ def userManager():
action
=
-
2
while
action
==
-
2
:
try
:
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
except
Exception
:
action
=
-
2
return
(
action
)
def
loaning
():
print
(
"---------------------Gérer les ressources---------------------------"
)
print
(
"1 : Voir les ressources disponible."
)
print
(
"2 : Voir la r
e
partition des emprunts."
)
print
(
"3 : Ajouter un
L
ivre."
)
print
(
"1 : Voir les ressources disponible
s
."
)
print
(
"2 : Voir la r
é
partition des emprunts."
)
print
(
"3 : Ajouter un
l
ivre."
)
print
(
"4 : Ajouter une oeuvre musicale."
)
print
(
"5 : Ajouter un film."
)
action
=
-
2
while
action
==
-
2
:
try
:
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
except
Exception
:
action
=
-
2
return
(
action
)
...
...
@@ -126,79 +126,69 @@ def loaning():
def
Statistiques
():
print
(
"---------------------Voir les statistiques-------------------------"
)
print
(
"1 : Voir les resources populaires."
)
print
(
"2 : Voir le nombre d'emprunts par resource."
)
print
(
"1 : Voir les res
s
ources populaires."
)
print
(
"2 : Voir le nombre d'emprunts par res
s
ource."
)
print
(
"3 : Voir les genres populaires."
)
print
(
"4 : Voir le nombre d'emprunts par ressource
s
."
)
print
(
"5 : Voir le genre pr
efere
des adh
e
rents."
)
print
(
"6 : Voir l'
a
ge moyen des adh
e
rents'."
)
print
(
"4 : Voir le nombre d'emprunts par ressource."
)
print
(
"5 : Voir le genre pr
éféré
des adh
é
rents."
)
print
(
"6 : Voir l'
â
ge moyen des adh
é
rents'."
)
print
(
"7 : Voir les types de documents populaires."
)
print
(
"8 : Voir la dur
e
e moyenne d'emprunt par adh
e
rent."
)
print
(
"9 :
v
oir la dur
e
e moyenne d'emprunt."
)
print
(
"10 : Voir la dur
e
e max d'emprunt
s
par adh
e
rent."
)
print
(
"11 : Voir la dur
e
e max des pr
e
ts."
)
print
(
"12 : Voir la dur
e
e moyenne des emprunts par ressource
s
."
)
print
(
"13 : Voir la dur
e
e max d'emprunt
s
par ressource."
)
print
(
"8 : Voir la dur
é
e moyenne d'
un
emprunt par adh
é
rent."
)
print
(
"9 :
V
oir la dur
é
e moyenne d'
un
emprunt
par adhérent
."
)
print
(
"10 : Voir la dur
é
e max d'
un
emprunt par adh
é
rent."
)
print
(
"11 : Voir la dur
é
e max des pr
ê
ts."
)
print
(
"12 : Voir la dur
é
e moyenne des emprunts par ressource."
)
print
(
"13 : Voir la dur
é
e max d'
un
emprunt par ressource."
)
action
=
-
2
while
action
==
-
2
:
try
:
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
action
=
int
(
input
(
"Veuillez saisir le numéro de votre action
:
"
))
except
Exception
:
action
=
-
2
return
(
action
)
def
addLivre
():
codeunique
=
input
(
"Entrer le code du livre
:
"
)
titre
=
input
(
"Entrer le titre du livre
:
"
)
dateapparition
=
datetime
.
strptime
(
input
(
"Entrer la date du livre
:
"
))
editeur
=
input
(
"Entrer l'
e
diteur du livre
:
"
)
genre
=
input
(
"Entrer le genre du livre
:
"
)
codeclassification
=
input
(
"Entrer le code de classification du livre
:
"
)
isbn
=
input
(
"Entrer le code
isbn
du livre
:
"
)
resume
=
input
(
"Entrer le r
e
sum
e
du livre
:
"
)
langue
=
input
(
"Entrer la langue du livre
:
"
)
codeunique
=
input
(
"Entrer le code du livre
:
"
)
titre
=
input
(
"Entrer le titre du livre
:
"
)
dateapparition
=
datetime
.
strptime
(
input
(
"Entrer la date du livre
:
"
))
editeur
=
input
(
"Entrer l'
é
diteur du livre
:
"
)
genre
=
input
(
"Entrer le genre du livre
:
"
)
codeclassification
=
input
(
"Entrer le code de classification du livre
:
"
)
isbn
=
input
(
"Entrer le code
ISBN
du livre
:
"
)
resume
=
input
(
"Entrer le r
é
sum
é
du livre
:
"
)
langue
=
input
(
"Entrer la langue du livre
:
"
)
return
(
codeunique
,
titre
,
dateapparition
,
editeur
,
genre
,
codeclassification
,
isbn
,
resume
,
langue
)
def
addOeuvremusical
():
codeunique
=
input
(
"Entrer le code de l'oeuvre musical:"
)
titre
=
input
(
"Entrer le titre de l'oeuvre musical:"
)
dateapparition
=
datetime
.
strptime
(
input
(
"Entrer la date de l'oeuvre musical:"
))
editeur
=
input
(
"Entrer l'editeur de l'oeuvre musical:"
)
genre
=
input
(
"Entrer le genre de l'oeuvre musical:"
)
codeclassification
=
input
(
"Entrer le code de classification de l'oeuvre musical:"
)
longueur
=
input
(
"Entrer la longueur de l'oeuvre musical:"
)
return
(
codeunique
,
titre
,
dateapparition
,
editeur
,
genre
,
codeclassification
,
longueur
)
def
addOeuvremusical
():
codeunique
=
input
(
"Entrer le code de l'oeuvre musical:"
)
titre
=
input
(
"Entrer le titre de l'oeuvre musical:"
)
dateapparition
=
datetime
.
strptime
(
input
(
"Entrer la date de l'oeuvre musical:"
))
editeur
=
input
(
"Entrer l'editeur de l'oeuvre musical:"
)
genre
=
input
(
"Entrer le genre de l'oeuvre musical:"
)
codeclassification
=
input
(
"Entrer le code de classification de l'oeuvre musical:"
)
longueur
=
input
(
"Entrer la longueur de l'oeuvre musical:"
)
codeunique
=
input
(
"Entrer le code de l'oeuvre musicale : "
)
titre
=
input
(
"Entrer le titre de l'oeuvre musicale : "
)
dateapparition
=
datetime
.
strptime
(
input
(
"Entrer la date de l'oeuvre musicale : "
))
editeur
=
input
(
"Entrer l'éditeur de l'oeuvre musicale : "
)
genre
=
input
(
"Entrer le genre de l'oeuvre musicale : "
)
codeclassification
=
input
(
"Entrer le code de classification de l'oeuvre musicale : "
)
longueur
=
input
(
"Entrer la longueur de l'oeuvre musicale : "
)
return
(
codeunique
,
titre
,
dateapparition
,
editeur
,
genre
,
codeclassification
,
longueur
)
def
addFilm
():
codeunique
=
input
(
"Entrer le code du film
:
"
)
titre
=
input
(
"Entrer le titre du film
:
"
)
dateapparition
=
datetime
.
strptime
(
input
(
"Entrer la date du film
:
"
))
editeur
=
input
(
"Entrer l'
e
diteur du film
:
"
)
genre
=
input
(
"Entrer le genre du film
:
"
)
codeclassification
=
input
(
"Entrer le code de classification du film
:
"
)
longueur
=
input
(
"Entrer la longueur du film
:
"
)
synopsis
=
input
(
"Entrer le synopsis du film
:
"
)
codeunique
=
input
(
"Entrer le code du film
:
"
)
titre
=
input
(
"Entrer le titre du film
:
"
)
dateapparition
=
datetime
.
strptime
(
input
(
"Entrer la date du film
:
"
))
editeur
=
input
(
"Entrer l'
é
diteur du film
:
"
)
genre
=
input
(
"Entrer le genre du film
:
"
)
codeclassification
=
input
(
"Entrer le code de classification du film
:
"
)
longueur
=
input
(
"Entrer la longueur du film
:
"
)
synopsis
=
input
(
"Entrer le synopsis du film
:
"
)
return
(
codeunique
,
titre
,
dateapparition
,
editeur
,
genre
,
codeclassification
,
longueur
,
synopsis
)
def
pretmanager
():
print
(
"---------------------Gérer les pr
e
ts---------------------------"
)
print
(
"1 :
f
aire un emprunt
s
."
)
print
(
"---------------------Gérer les pr
ê
ts---------------------------"
)
print
(
"1 :
F
aire un emprunt."
)
print
(
"2 : Faire un retour."
)
print
(
"3 :
v
oir la liste des e
c
emplaires empruntés"
)
print
(
"4 :
m
ettre à jour l'état exemplaire."
)
action
=
int
(
input
(
"
v
euillez saisir le numéro de votre action
:
"
))
print
(
"3 :
V
oir la liste des e
x
emplaires empruntés
.
"
)
print
(
"4 :
M
ettre à jour l'état
d'un
exemplaire."
)
action
=
int
(
input
(
"
V
euillez saisir le numéro de votre action
:
"
))
return
(
action
)
def
Menu
():
...
...
@@ -217,7 +207,7 @@ def Menu():
act
=
pretmanager
()
if
(
act
==
1
):
login
=
input
(
"Entrez le login de l'adhérent : "
)
ressources_str
=
input
(
"Entrez les ids d'exemplaire séparés par une virgule (ex : 7,8,9,10) :"
)
ressources_str
=
input
(
"Entrez les ids d'exemplaire
s
séparés par une virgule (ex : 7,8,9,10) :"
)
ressources
=
ressources_str
.
split
(
","
)
duree
=
input
(
"Entrez le nombre de jours pour le prêt : "
)
dataMapper
.
creerPret
(
login
,
ressources
,
duree
)
...
...
@@ -228,7 +218,7 @@ def Menu():
pretID
=
input
(
"Entrez le numéro de prêt : "
)
dataMapper
.
retourPret
(
pretID
)
elif
(
act
==
3
):
pretID
=
input
(
"Entrez le numéro du prêt"
)
pretID
=
input
(
"Entrez le numéro du prêt
:
"
)
data
=
dataMapper
.
getExemplairesPret
(
pretID
)
affiche
(
data
,
(
"Réf."
,
"N° Pret"
))
elif
(
act
==
4
):
...
...
@@ -240,7 +230,7 @@ def Menu():
dataMapper
=
SanctionDataMapper
()
act
=
sanction
()
if
(
act
==
1
):
login
=
input
(
"Saisir le login de l'adh
e
rent à ajouter à la blacklist
:
"
)
login
=
input
(
"Saisir le login de l'adh
é
rent à ajouter à la blacklist
:
"
)
dataMapper
.
blacklister
(
login
)
elif
(
act
==
2
):
data
=
dataMapper
.
getSanctions
()
...
...
@@ -283,38 +273,38 @@ def Menu():
affiche
(
data
,
(
"Genre"
,
"Nb emprunts"
))
elif
(
act
==
4
):
genre
=
input
(
"Entrer :"
)
data
=
dataMapper
.
nombreEmprunt
Ressourceg
enre
(
genre
)
print
(
f
"Le nombre d'emprunt pour le genre
{
genre
}
est de
{
data
}
."
)
data
=
dataMapper
.
nombreEmprunt
ParG
enre
(
genre
)
print
(
f
"Le nombre d'emprunt
s
pour le genre
{
genre
}
est de
{
data
}
."
)
elif
(
act
==
5
):
login
=
input
(
"Entrer le login d'un adh
e
rent:"
)
login
=
input
(
"Entrer le login d'un adh
é
rent:"
)
data
=
dataMapper
.
genrePrefereAdherent
(
login
)
print
(
f
"Le genre pr
efere
de l'adh
e
rent
{
login
}
est '
{
data
}
'."
)
print
(
f
"Le genre pr
éféré
de l'adh
é
rent
{
login
}
est '
{
data
}
'."
)
elif
(
act
==
6
):
data
=
dataMapper
.
ageMoyenAdherent
()
print
(
f
"L'
a
ge moyen des adh
e
rents est de
{
data
}
."
)
print
(
f
"L'
â
ge moyen des adh
é
rents est de
{
data
}
."
)
elif
(
act
==
7
):
data
=
dataMapper
.
typeDocumentPopulaire
()
print
(
f
"Les documents les plus empruntés sont les
{
data
}
."
)
elif
(
act
==
8
):
login
=
input
(
"Entrer le login d'un adh
e
rent:"
)
login
=
input
(
"Entrer le login d'un adh
é
rent:"
)
data
=
dataMapper
.
dureeMoyenneEmpruntParAdherent
(
login
)
print
(
f
"La dur
e
e moyenne d'un emprunt par l'adh
e
rent
{
login
}
est de
{
data
}
jours."
)
print
(
f
"La dur
é
e moyenne d'un emprunt par l'adh
é
rent
{
login
}
est de
{
data
}
jours."
)
elif
(
act
==
9
):
data
=
dataMapper
.
dureeMoyenneEmprunt
()
print
(
f
"La dur
e
e moyenne d'un emprunt est de
{
data
}
jours."
)
print
(
f
"La dur
é
e moyenne d'un emprunt est de
{
data
}
jours."
)
elif
(
act
==
10
):
login
=
input
(
"Entrer le login d'un adh
e
rent:"
)
login
=
input
(
"Entrer le login d'un adh
é
rent:"
)
data
=
dataMapper
.
dureeMaxEmpruntParAdherent
(
login
)
print
(
f
"Le
pret le
plus long
fu de
{
data
}
jours."
)
print
(
f
"Le plus long
emprunt de
{
login
}
a duré
{
data
}
jours."
)
elif
(
act
==
11
):
data
=
dataMapper
.
dureeMaxPret
()
print
(
f
"Le
pret le
plus long
fu de
{
data
}
jours."
)
print
(
f
"Le plus long
emprunt a duré
{
data
}
jours."
)
elif
(
act
==
12
):
codeunique
=
input
(
"Entrer le code de la resource
:
"
)
codeunique
=
input
(
"Entrer le code de la res
s
ource
:
"
)
data
=
dataMapper
.
dureeMoyenneEmpruntParRessource
(
codeunique
)
print
(
f
"Cette ressource a été empruntée
{
data
}
jours en moyenne."
)
elif
(
act
==
13
):
codeunique
=
input
(
"Entrer le code de la resource
:
"
)
codeunique
=
input
(
"Entrer le code de la res
s
ource
:
"
)
data
=
dataMapper
.
dureeMaxEmpruntParRessource
(
codeunique
)
print
(
f
"Cette ressource a été empruntée au maximum
{
data
}
jours."
)
...
...
@@ -330,10 +320,10 @@ def Menu():
dataMapper
.
ajouterUtilisateur
(
login
,
modtdepasse
,
nom
,
prenom
,
adresse
,
mail
)
dataMapper
.
ajouterPersonnel
(
login
)
elif
(
act
==
3
):
login
=
input
(
"
e
ntrer le login de l'
h
adérent à supprimer
:
"
)
login
=
input
(
"
E
ntrer le login de l'ad
h
érent à supprimer
:
"
)
dataMapper
.
deleteAdherent
(
login
)
elif
(
act
==
4
):
login
=
input
(
"
e
ntrer le login du membre du personnel à supprimer
:
"
)
login
=
input
(
"
E
ntrer le login du membre du personnel à supprimer
:
"
)
dataMapper
.
deletePersonnel
(
login
)
elif
(
act
==
5
):
adherentDataMapper
=
AdherentDataMapper
()
...
...
@@ -346,13 +336,13 @@ def Menu():
action
=
actionAdherent
()
if
(
action
==
1
):
data
=
dataMapper
.
getAvailableExemplaires
()
affiche
(
data
,
(
'R
eference
'
,
'Titre'
,
'Editeur'
,
'Genre'
))
affiche
(
data
,
(
'R
éf.
'
,
'Titre'
,
'Editeur'
,
'Genre'
))
elif
(
action
==
2
):
dataMapper
=
AdherentDataMapper
()
data
=
dataMapper
.
getPrets
(
login
)
affiche
(
data
,
(
'NbArticle'
,
'Id'
,
'Date'
,
'login'
))
affiche
(
data
,
(
'NbArticle
s
'
,
'Id'
,
'Date'
,
'login'
))
elif
(
role
==
Roles
.
UNAUTHORIZED
):
print
(
"Vous n'êtes pas enregistré à la biblioth
é
que."
)
print
(
"Vous n'êtes pas enregistré à la biblioth
è
que."
)
elif
(
role
==
Roles
.
BLACKLISTED
):
print
(
"Vous faites partie de la liste noir de la biblioth
é
que.
\n
Vous ne pouvez donc plus faire d'emprunt"
)
print
(
"Vous faites partie de la liste noir
e
de la biblioth
è
que.
\n
Vous ne pouvez donc plus faire d'emprunt
s.
"
)
Menu
()
\ No newline at end of file
src/StatistiquesDataMapper.py
View file @
2d9337df
...
...
@@ -39,7 +39,7 @@ class StatistiquesDataMapper(DataMapper):
conn
=
self
.
connect
()
try
:
cursor
:
psycopg2
.
extensions
.
cursor
=
conn
.
cursor
()
sql1
=
"SELECT gp.
tit
re, gp.nb_emprunt FROM GenresPopulaires gp"
sql1
=
"SELECT gp.
gen
re, gp.nb_emprunt FROM GenresPopulaires gp"
cursor
.
execute
(
sql1
)
rows
=
cursor
.
fetchall
()
return
rows
...
...
@@ -49,12 +49,12 @@ class StatistiquesDataMapper(DataMapper):
conn
.
close
()
# print('Genre : {0} Nombre d\'emprunts : {1}\n'.format(row[0], row[1]))
# retourne le nombre de fois qu'un
e ressourc
e a été empruntée
def
nombreEmprunt
Ressourceg
enre
(
self
,
genre
:
int
)
:
# retourne le nombre de fois qu'un
genr
e a été empruntée
def
nombreEmprunt
ParG
enre
(
self
,
genre
:
int
)
:
conn
=
self
.
connect
()
try
:
cursor
:
psycopg2
.
extensions
.
cursor
=
conn
.
cursor
()
sql1
=
"SELECT gp.
tit
re, gp.nb_emprunt FROM GenresPopulaires gp WHERE gp.genre = '{0}' GROUP BY gp.genre"
.
format
(
genre
)
sql1
=
"SELECT gp.
gen
re, gp.nb_emprunt FROM GenresPopulaires gp WHERE gp.genre = '{0}' GROUP BY gp.genre"
.
format
(
genre
)
cursor
.
execute
(
sql1
)
ressource
=
cursor
.
fetchone
()
return
ressource
[
1
]
...
...
src/database/VIEWS.sql
View file @
2d9337df
CREATE
VIEW
Exemplaires_Disponibles
AS
CREATE
OR
REPLACE
VIEW
Exemplaires_Disponibles
AS
SELECT
DISTINCT
(
codeunique
),
titre
,
editeur
,
genre
FROM
ressource
JOIN
exemplaire
ON
exemplaire
.
ressource
=
ressource
.
codeunique
WHERE
disponible
=
TRUE
;
CREATE
VIEW
Repartition_Emprunts
AS
CREATE
OR
REPLACE
VIEW
Repartition_Emprunts
AS
SELECT
CASE
WHEN
exemplaire
.
ressource
IN
(
SELECT
codeunique
FROM
livre
)
THEN
'livre'
...
...
@@ -70,27 +70,27 @@ CREATE OR REPLACE VIEW FilmsPopulaires AS
ORDER
BY
COUNT
(
ep
.
ref
)
DESC
;
CREATE
OR
REPLACE
VIEW
DureeMaxEmpruntParAdherent
AS
SELECT
va
.
nom
,
va
.
login
login
,
MAX
(
duree
)
dureeEmpruntMax
SELECT
va
.
nom
,
va
.
login
login
,
MAX
(
p
.
duree
)
dureeEmpruntMax
FROM
VAdherent
va
JOIN
Pret
p
ON
p
.
adherent
=
va
.
login
GROUP
BY
va
.
nom
,
va
.
login
ORDER
BY
MAX
(
duree
)
DESC
;
ORDER
BY
MAX
(
p
.
duree
)
DESC
;
CREATE
OR
REPLACE
VIEW
DureeMoyenneEmpruntParAdherent
AS
SELECT
va
.
nom
nom
,
va
.
login
login
,
AVG
(
duree
)
dureeMoyenneEmprunt
SELECT
va
.
nom
nom
,
va
.
login
login
,
AVG
(
p
.
duree
)
dureeMoyenneEmprunt
FROM
VAdherent
va
JOIN
Pret
p
ON
p
.
adherent
=
va
.
login
GROUP
BY
va
.
nom
,
va
.
login
ORDER
BY
AVG
(
duree
)
DESC
;
ORDER
BY
AVG
(
p
.
duree
)
DESC
;
CREATE
OR
REPLACE
VIEW
DureeMaxEmpruntParRessource
AS
SELECT
r
.
titre
,
r
.
codeUnique
codeUnique
,
MAX
(
duree
)
dureeEmpruntMax
SELECT
r
.
titre
,
r
.
codeUnique
codeUnique
,
MAX
(
p
.
duree
)
dureeEmpruntMax
FROM
Ressource
r
JOIN
Exemplaire
e
ON
e
.
ressource
=
r
.
codeUnique
JOIN
ExemplairePret
ep
ON
ep
.
ref
=
e
.
ref
JOIN
Pret
p
ON
p
.
pretID
=
ep
.
pret
GROUP
BY
r
.
titre
,
r
.
codeUnique
ORDER
BY
MAX
(
duree
)
DESC
;
ORDER
BY
MAX
(
p
.
duree
)
DESC
;
CREATE
OR
REPLACE
VIEW
DureeMoyenneEmpruntParRessource
AS
SELECT
r
.
titre
,
r
.
codeUnique
codeUnique
,
AVG
(
duree
)
dureeMoyenneEmprunt
SELECT
r
.
titre
,
r
.
codeUnique
codeUnique
,
AVG
(
p
.
duree
)
dureeMoyenneEmprunt
FROM
Ressource
r
JOIN
Exemplaire
e
ON
e
.
ressource
=
r
.
codeUnique
JOIN
ExemplairePret
ep
ON
ep
.
ref
=
e
.
ref
JOIN
Pret
p
ON
p
.
pretID
=
ep
.
pret
GROUP
BY
r
.
titre
,
r
.
codeUnique
ORDER
BY
AVG
(
duree
)
DESC
;
ORDER
BY
AVG
(
p
.
duree
)
DESC
;
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