cs_Luana
Messages postés8Date d'inscriptionvendredi 28 septembre 2007StatutMembreDernière intervention29 septembre 2007
-
29 sept. 2007 à 13:25
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
29 sept. 2007 à 22:43
Bonjour,
je dois traiter une étude de cas à savoir la gestion d'une bibliothèque.
J'ai donc créee mes formulaires, mes tables (étudiant, prêt (entités: date de sortie, de retour, n°etud, n°doc, n°prêt), document ...), définit les relations, les contraintes d'intégrités...
Mais il y a un problème que je ne parviens pas à résoudre: logiquement un étudiant ne doit pouvoir emprunter qu'un seul document à la fois de même qu'un document ne peut être emprunté qu'une fois sauf si la date du nouvel emprunt est supèrieure à la date de l'emprunt précédent et je n'arrive pas à définir ces contraintes dans ma base.
Le formulaire accepte un enregistrement dans la table lorsque par ex pour un doc et un étudiant la date de retour est infèrieure à la date de sortie, plutôt illogique à mon avis...
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 29 sept. 2007 à 19:34
Salut,
certaibes règles de gestion ne peuvent être gérées que par code.
Pour le prêt, à toi de vérifier, lors de la saisie, que le "bon sens" est respecté.
cs_Luana
Messages postés8Date d'inscriptionvendredi 28 septembre 2007StatutMembreDernière intervention29 septembre 2007 29 sept. 2007 à 20:18
Merci pour ta réponse mais je n'arrive pas à concevoir que de telles erreurs soient acceptées par la base. Il doit bien y avoir un moyen de définir ces contraintes...
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 29 sept. 2007 à 20:53
il faut juste revoir ta structure de la table pret.
Suggestion:
N°Pret (identifiant , unique)
Etudiant
Doc
Date_Pret
Rendu (Boolean : pae défait=False)
Date_Retour (au choix:String par defaut "", ou Date , Null au depart)
Lorsqu' un Doc est rendu,
-tu te pointe sur n°Pret
-tu met Rendu à true
-tu enregistres la date_Retour en veillant
à ce qu' elle soit supérirure à Date_Pret
Pour annuler un retour
-tu te pointes sur n°Pret
-tu mets Rendu à false et date_Retour à Null
cs_Luana
Messages postés8Date d'inscriptionvendredi 28 septembre 2007StatutMembreDernière intervention29 septembre 2007 29 sept. 2007 à 21:02
D'accord et comment à partir de là faire que le doc ne puisse être réemprunter que lorsqu'il a été rendu c'est à dire lorsque il y a "true" dans le champ "rendu".
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 29 sept. 2007 à 21:08
tu vérifies si le doc en question ne se trouve pas
dans la liste des Docs qui n' ont pas encore été rendus.
Ou bien tu vérifies si le doc en question se trouve
dans la liste des Docs qui sont disponibles.
(ceux qui n' ont jamais été empruntés+ceux qui ont été rendus)
cs_Luana
Messages postés8Date d'inscriptionvendredi 28 septembre 2007StatutMembreDernière intervention29 septembre 2007 29 sept. 2007 à 21:13
Donc c'est à moi de vérifier... Imaginons que je commette une erreur et que je tape le titre d'un document qui a déjà été emprunter et qui n'a pas été rendu alors aucun message ne pourra m'avertir de cette erreur?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 29 sept. 2007 à 21:45
la liste de documents empruntables est obtenue à partir d' une
requete non correspondance faite sur :
Table_Doc liée à une requete qui retourne les docs non_rendus
Docs Non_rendus
IdDoc -----> IdDoc
la requete non correspondence recherche dans la table Dobs les documents qui se trouvent dans celle ci et ne se trouvent pas dans les non rendus.
cs_Luana
Messages postés8Date d'inscriptionvendredi 28 septembre 2007StatutMembreDernière intervention29 septembre 2007 29 sept. 2007 à 22:19
Je voudrais définir des conditions qui stipulent par exemple qu'il est impossible d'emprunter un document déjà emprunté ou qu'il faut pour pouvoir effectivement l'emprunter que la date du nouvel emprunt soit supèrieure à la date de remise du doc par le précédent emprunt... Bref que je ne puisse pas ajouter dans ma table des enregistrements incohérents...
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 29 sept. 2007 à 22:22
bien sûr que c' est une requete qui ne sert qu' à vérifier !
Pour la saisie tu utilises ta table Prets.
Ce n' est que lorsque le doc est disponible que tu peux effectuer un Pret.Sinon tu l' interdit.
Tout celà est dans le but de respecter les règles de gestion.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 29 sept. 2007 à 22:43
Je ne sais pas pour les triggers, mais personnellement je prèfère une gestion controlée par code.Ainsi ton prog gardera la main,
et tu peux renseigner l' utilisateur et le redirriger.
Bonne continuation et bonne fin de soirée.