IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Gestion de location de véhicules


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Points : 126
    Points
    126
    Par défaut Gestion de location de véhicules
    Bonjour,

    Je dois réaliser une application permettant de gérer un certain nombre de véhicule (de même marque ou de marques différentes).

    Ces véhicules peuvent être louer n'importe quel jour et dans n'importe quel laps de temps.

    Un véhicule ne peut bien entendu pas être louer 2 fois le même jour et dans un même laps de temps ou qui se chevauche.

    J'ai pensé utiliser 3 tables (user, vehicule et reservation).
    Mais j'ai du mal à réaliser mes requêtes pour vérifier si un véhicule de la marque choisie est disponible dans le laps de temps choisi.

    Qqun peut-il m'aider?

    Merci

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Dans ta table tu doit avoir un champ findelocation et tu fais une comparaison de date entre la date de fin de location et celle de réservation.

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Points : 126
    Points
    126
    Par défaut
    Oui mais ce qu'il y a, c'est que tu peux par exemple avoir 3 peugeot. 2 sont louées mais pas la 3ème.

    L'utilisateur choisi une peugeot. Si je fais comme tu as dis, je vérifie dans la table "reservation" la date de fin des location pour savoir si une autre location est possible.
    Mais je ne vérifie pas si un autre véhicule de la meme marque n'est pas loué.

    Je m'embrouille donc un peu avec les différentes requêtes qu'il faut faire....

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Il y a des super trucs en SQL comme les COUNT, GROUP BY et HAVING

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 35
    Points : 36
    Points
    36
    Par défaut
    Créons trois tables user, vehicule et reservation

    user (user_id, nom, prenom)
    vehicule(vehicule_id, type)
    reservation(user_id, vehicule_id, datedebut, datefin)
    Je suppose que tu ne rentres une date de fin de réservation que lorsque la voiture est rendue...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT v.*
    FROM vehicule v, reservation r
    WHERE v.vehicule_id =+ r.vehicule_id
    AND r.date_fin IS NOT NULL

  6. #6
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Citation Envoyé par Titia765
    Créons trois tables user, vehicule et reservation

    user (user_id, nom, prenom)
    vehicule(vehicule_id, type)
    reservation(user_id, vehicule_id, datedebut, datefin)
    Je suppose que tu ne rentres une date de fin de réservation que lorsque la voiture est rendue...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT v.*
    FROM vehicule v, reservation r
    WHERE v.vehicule_id =+ r.vehicule_id
    AND r.date_fin IS NOT NULL
    Pour toi la reservation=location ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 35
    Points : 36
    Points
    36
    Par défaut
    Oupss... effectivement...

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Quand tu réserves une voiture, c'est que tu la prends ou que tu vas la prendre en location non ?

  9. #9
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Citation Envoyé par BiMouXeTTe
    Quand tu réserves une voiture, c'est que tu la prends ou que tu vas la prendre en location non ?
    Quand tu reserves, tu ne prends pas.
    Tu peux annuler une reservation (reserver mais pas louer).
    Tu peux reserver une voiture qui est actuellement louée.
    Tu peux louer une voiture qui est reservée (si la location n'empiete pas sur la reservation).

    Pour moi, location a une cardinalité 0,1 a un temps T
    Les locations une cardinalité maximum (0,n)

    Mais cela n'est que ma vision des choses

  10. #10
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Quand tu réserves, tu comptes comme louée pour ta voiture, une location est une réservation commencée après tout non ?

    Dans la table réservation il y a date et horaires.

  11. #11
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Citation Envoyé par BiMouXeTTe
    Quand tu réserves, tu comptes comme louée pour ta voiture, une location est une réservation commencée après tout non ?

    Dans la table réservation il y a date et horaires.
    Dans ce cas, comment feras tu pour differencier une location en cours (qui est la finalité) d'une reservation en cours (qui n'est pas une finalité car elle devra etre annulée) ?
    En effet si quelqu'un reserve une voiture mais ne vient pas la chercher, cette voiture ne doit pas rester dans l'etat reservée (sinon bonjour le manque a gagner !! )

    Ceci dit, je vais peut etre un peu trop loin dans l'analyse. Gid01 veut peut etre une solution tres simple.

  12. #12
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    En effet, il ne me faut rien de très compliqué.

    Par rapport a ce que vous avez dit, une voiture peu être réservée alors qu'elle est déjà en location pour autant que la réservation ne soit pas dans la même plage horaire que la location actuelle.

    Si une réservation est faite mais que la personne ne vient pas prendre la voiture, c'est pour sa pomme. Elle avait qu'à pas réserver ou annuler.

    J'aimerais donc un coup de main pour réaliser les requêtes permettant de valider une réservation tout en vérifiant que c'est possible et en ayant à l'esprit que plusieurs véhicules du même type sont présents (avec un ID différent) dans la table "véhicule".

    Merci pour votre aide

  13. #13
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Quand tu fais une recherche pour une location.

    Tu regardes :
    - les voitures libres
    - les voitures réservées mais non prises (dans ce cas, le client paye, normal !)

    Mais réservation et location sont la même chose. Il faut plusieurs états, soit sous forme de VARCHAR(1), soit sous forme de plusieurs booléens (plus propre).

    IDVoiture (VARCHAR)
    Reservation (BOOLEAN)
    Location (BOOLEAN)
    Debut (DATE)
    Fin (DATE)

    Si RESERVATION et DEBUT non depassé, alors VOITURE non réservable pour la période mais louable jusqu'à la période de réservation.
    Si RESERVATION et non LOCATION et DEBUT dépassé, alors VOITURE réservable et louable.
    Si RESERVATION et LOCATION, alors voiture non louable et non réservable pour la période.
    etc...

Discussions similaires

  1. [MCD] Location de véhicules
    Par Aedonya dans le forum Schéma
    Réponses: 23
    Dernier message: 28/05/2009, 18h31
  2. [C#] gestion interface Location conteneur
    Par Hurin dans le forum C#
    Réponses: 2
    Dernier message: 30/07/2008, 16h14
  3. [Sérieux] location de véhicule longue durée
    Par cladsam dans le forum La taverne du Club : Humour et divers
    Réponses: 6
    Dernier message: 22/11/2007, 16h57
  4. [MCD] Location de véhicules
    Par Invité dans le forum Schéma
    Réponses: 13
    Dernier message: 01/10/2007, 22h10
  5. Réponses: 1
    Dernier message: 27/08/2007, 07h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo