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

Requêtes MySQL Discussion :

Parcours Chemin de fer (1 table)


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 48
    Points
    48
    Par défaut Parcours Chemin de fer (1 table)
    Salut a tous!

    voici mon problème d'aujourd'hui. J'ai disponible un tableau MySQL qui contiens les parcoures/trajets des chemins de ferre du région (Portugal). [id, gareDepart, gareArrivee, Prix, ServiceID] ce sont les attribues disponible sur se tableau. J'ai accès aussi a 2 tableaux supplémentaire (gares, e Services)

    L'objective de la raquette ou d'une Stored Procedure ou de une outre manière pour savoir le meilleur trajets entre deux station. (il faut vérifié si c'est nécessaire de changement de train).

    Exemple: Agueda to Faro
    Agueda - Aveiro (Régional)
    Aveiro - Lisbonne (IC/AP)
    Lisbonne - Faro (IC/AP)

    Une idée??

    Merci d'avance!
    Filipe Oliveira

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Points : 136
    Points
    136
    Par défaut
    Bonjour,

    c'est tout ce que tu as comme données ?

    Comment peux tu savoir que

    Agueda - Aveiro (Régional)
    Aveiro - Lisbonne (IC/AP)
    Lisbonne - Faro (IC/AP)

    c'est mieux que

    Agueda - Paris (TGV)
    Paris (TGV) - Faro (TGV)

    Tu n'as pas de notion de distance ou de temps ou d'horaire ?


    De toutes les façons, ça me parait un peu trop complexe pour une simple requête SQL, même avec des procédures récursives.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 48
    Points
    48
    Par défaut
    J'ai que la notion de temps car j'est le temps entre parcours.

    Parcours
    ------------
    IDParcour
    GareDepart
    GareArrivee
    TimeDepart
    TimeArrivee
    Prix1Classe
    Prix2Classe
    ServiceID

    J'utilise C# pour ce projet.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Cette requête n'est pas solvable sans l'apport des requêtes récursives (norme SQL:1999) que MySQL ne sait pas faire.

    Pour la solution, il suffit de lire l'article que j'ai écrit à ce sujet et qui est la résolution du parcours du plus court chemin dans un circuit autoroutier :
    http://sqlpro.developpez.com/cours/s...te-recursives/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 48
    Points
    48
    Par défaut
    Merci je vais analysé cette article. au pire j'utilise SQL Server comme base de donnée auxiliaire sur mon Project. Et la c'est possible que je puisse utilisé ça.

    Sinon c'est pas possible de résoudre ça avec une fonction en C# récursive?

    Merci...
    FO

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Points : 136
    Points
    136
    Par défaut
    Si, bien sûr, tout est possible Source code C#, si tu as l'algorithme de Dijkstra, comme il le précise dans son article, note que dans ton cas, il ne faut pas utiliser une distance, mais un temps.
    Ta demande est un peu plus complexe, car d'une gare, tu ne peux repartir qu'à une heure donnée, si tu arrives à 10h, tu ne peux reprendre qu'un train qui part après 10h. Autrement dit, tu ne dois pas seulement déterminer le temps minimum de la gare de départ vers les autres gares, mais aussi, à quel heure il faut partir.
    Il est tout à fait envisageable de mettre 3h pour aller de A à B en passant par C, D et F à 10h du matin et c'est le plus court à cette heure là, mais seulement 2h48 en passant par E et F à 16h35 et c'est le plus court de la journée (attention aux trains de nuit).
    Si ton projet est réel (il y a des gens qui vont prendre le train d'après ton programme), il faut aussi prévoir un laps de temps entre l'arrivée dans une gare et le départ de l'autre train, les gens ne sautent pas d'un wagon à l'autre pendant que les 2 trains roulent.
    ça peut aussi se complexifier si le prix des billets entre en ligne de compte, faut il prendre le trajet de 3h à 74€ ou celui de 2h48 à 112€ ... Sachant que ma grand-mère m'attend pour le diner à 19h45 précise et qu'elle habite à 7km de la gare

Discussions similaires

  1. [AC-2007] Modifier le chemin d'accès à une table liée
    Par Skootman dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/06/2009, 14h47
  2. mon chemin de fer n'arrive pas à démarrer!
    Par kayorn dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 02/06/2009, 21h55
  3. Création d'un chemin de fer
    Par miya dans le forum MVC
    Réponses: 17
    Dernier message: 02/01/2009, 20h21
  4. Création de fil d'ariane (Chemin de fer)
    Par rad_hass dans le forum ASP.NET
    Réponses: 0
    Dernier message: 24/11/2008, 15h45
  5. Réponses: 8
    Dernier message: 20/02/2007, 17h33

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