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

PHP & Base de données Discussion :

calcul de périodes


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Par défaut calcul de périodes
    Voila je dois calculer les périodes durant lesquelles tout les véhicules sont réserver à partir d'une table réservation.

    Le probleme c est que les dates sont eclater ( annee, mois , jour,heure et minute sous la forme int) . J ai donc la date de debut et la date de fin de la reservation sous cette forme plus l ID reservation et l ID de la voiture LA table reservation est rattaché a la table voiture.

    Je vois bien comment recréer des dates au bon format mais pour trouver les périodes ou toutes les voitures sont réservés j avoue que je bloque...

    ( C est une applications Struts et j'utilise JDO pour ma BD )

    J'attends vos suggestions...Merci d'avance..

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut Re: [MySQL] calcul de périodes
    Je suis justement en train d'écrire un article sur les fonctions de date et leurs applications, peut-être que cela pourra t'aider.

    Voici les pages qui pourraient t'intéresser:
    Statistiques sur une période donnée
    Réservation d'une chambre d'hotel

    Et l'article en question (pas encore fini !):
    http://pcaboche.developpez.com/artic...ons_date_heure

    ***

    Voilà comment procéder:

    - En t'inspirant de Statistiques sur une période donnée, tu dresses la liste des jours correspondant à la période considérée
    - Tu fais le produit cartésien entre la liste précédemment obtenue et les véhicules (couples: jour/id véhicule)
    - Tu fais une jointure LEFT JOIN sur la table réservation pour savoir si le véhicule a été loué ce jour là. Si le véhicule n'a pas été loué ce jour là, la valeur de la colonne sera égale à NULL
    - Tu fais un GROUP BY jour et un HAVING( AVG(IF(reservation.id IS NULL, 0, 1)) = 1) pour avoir la liste des jours pour lequel TOUS les véhicules ont été loués
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    On est d'accord que tu peux facilement obtenir une liste demi-heure par demi-heure ? et le nombre véhicules loués à ce moment là.
    Tout le problème est de générer les demi-heures
    Je fais un peu des supppositions mais si les réservations sont faites de demi heures en demi heures.
    Tu vas hériter d'un truc du genre

    2006 01 15 10 30 2006 01 15 11 00 5
    2006 01 15 11 00 2006 01 15 11 30 5
    2006 01 15 11 30 2006 01 15 12 00 5
    2006 01 15 12 00 2006 01 15 12 30 4

    Et la tu n'aura plus qu'a parser ca en java cela devrait aller très vite

    Bon maintenant le problème c'est ces demi heures, comment pour obtenir une liste de toutes les demi heures de l'année. Ben fait une table que tu remplis 10 ans à l'avance. C'est peut être pas propre mais c'est très efficace.
    Après tu cherche pour ligne de la table des demi heures qui est dans l'intervalle désiré si une réservation satisfait et on retombre sur le tableau précédent.

    Naturellement une stored proc qui fait ca (retourner un tableau de demi heures c'est encore mieux) mais ca je sais pas si mySql le peux.

    Sinon autre solution plus élégante, utiliser des triggers, lors de chaque insertion tu calcul les demi heures et tu remplis une table que tu interrogera par la suite.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/03/2011, 22h43
  2. Programme de calcul de période
    Par .Ophiuchus. dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/11/2010, 21h50
  3. Réponses: 12
    Dernier message: 29/10/2008, 12h45
  4. calcul de période
    Par chsap dans le forum SAP
    Réponses: 2
    Dernier message: 16/09/2008, 16h56
  5. Calculer la période d'une horloge
    Par barthelv dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 08/03/2004, 16h39

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