Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1185 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Débutante SQL : modélisation système train

n°1089198
robbyone
Non pas !
Posté le 19-05-2005 à 14:49:51  profilanswer
 

Reprise du message précédent :
Tu n'as pas tout lu toi : j'ai bien précisé dès le départ que chaque tronçon doit être considéré comme étant un trajet direct sans étape intermédiaire entre deux gares !!!
Quelquechose de relativement précis : heure de départ, distance + vitesse du train.
 
Cette notion de tronçon n'a rien de physique : un direct de A à C est un tronçon mais un omnibus A,B,C comporte les deux tronçons directs : AB et BC
 
Le niveau de détails doit être maximum et indivisible étant donné que l'application doit répondre aussi bien au voyageur qui va de A à Z que celui qui veut uniquement aller de P à O !!!
 
Donc si un jour, la Sncf décide de créer une gare sur mon tronçon t2, il me faudra donc créer deux tronçons t2_1 et t2_2 et garder t2 si le train direct est conservé !
 
Je reviens sur le premier point de ta remarque : ton soucis concernant le temps d'attente en gare s'annule par le fait que cette notion n'a pas à figurer ici : tout ce dont on a besoin c'est d'une heure de départ, d'une distance et d'une vitesse - ceci pour chaque train susceptible de s'arréter en gare : donc le direct et l'omnibus auront des heures de départ différentes : donc ils seront bien différenciés (combien de fois j'ai ralé parce que mon train avait du retard et que ma correspondance n'avait pu attendre : je devais attendre le départ suivant)
 
Cherche encore !  :D


Message édité par robbyone le 19-05-2005 à 14:50:31
mood
Publicité
Posté le 19-05-2005 à 14:49:51  profilanswer
 

n°1089838
unagi
Posté le 19-05-2005 à 19:09:56  profilanswer
 

[robbyone]
dc si je te comprends bien  :pt1cable: , concrètement je fais une table Tronçon qui a un départ et un terminus, qui est donc direct sans étape intermédiaire. Cette table Tronçon est d'ailleurs reliée à la table Station qui contient toutes les stations. Pr chaque tronçon, je dois lui indiquer la distance parcourue et l'heure de départ. Puis j'ai une table Trajet qui est reliée à la table Tronçon, et un trajet est en fait la somme de plusieurs Tronçons. Pr calculer le temps moyen je prends l'heure de départ la plus "faible", la somme des distances parcourues totales, et avec la distance du train, je peux calculer le temps moyen du trajet et donc l'heure d'arrivée.
Est-ce que je t'ai bien compris?  :whistle:  

n°1089845
unagi
Posté le 19-05-2005 à 19:18:13  profilanswer
 

Enfin c pas exactement ça pr le temps moyen, car là je n'ai pas tenu compte du temps d'attente potentielle entre 2 Tronçons. Il faut dc que je calcule le tps de trajet du 1er Tronçon, puis que je regarde l'heure de départ du 2e tronçon, je calcule alors la différence entre l'heure d'arrivée au 1er tronçon, et l'heure de départ du 2e tronçon, ça me donne le temps d'attente. Je calcule le temps moyen du 2e tronçon. Et ainsi j'ajoute le temps moyen du 1er tronçon, le temps d'attente, et le temps moyen du 2e tronçon...
Un peu complexe mon idée en fait, non? :sol:

n°1089953
mrbebert
Posté le 19-05-2005 à 20:49:20  profilanswer
 

robbyone a écrit :

Tu n'as pas tout lu toi : j'ai bien précisé dès le départ que chaque tronçon doit être considéré comme étant un trajet direct sans étape intermédiaire entre deux gares !!!
Quelquechose de relativement précis : heure de départ, distance + vitesse du train.
 
Cette notion de tronçon n'a rien de physique : un direct de A à C est un tronçon mais un omnibus A,B,C comporte les deux tronçons directs : AB et BC
 
Le niveau de détails doit être maximum et indivisible étant donné que l'application doit répondre aussi bien au voyageur qui va de A à Z que celui qui veut uniquement aller de P à O !!!
 
...

Et tu disais que ma solution était mauvaise car "redondante" :heink:  
 
En fait, toi, tu décomposes un trajet en intervalles entre des gares, moi je le décompose en gares, tu parles d'une révolution :whistle:  

n°1090358
robbyone
Non pas !
Posté le 20-05-2005 à 10:28:18  profilanswer
 

[unagi]
Dans la réalité, il ne sagit pas d'horaire moyenne d'arrivée. La Sncf prévoit au plus juste une horaire fixe assurant que le train sera en gare à cette heure là !
Donc : pour connaitre l'heure d'arrivée, tu construis ton parcours, tu prends l'heure de départ du DERNIER tronçon, tu calcules le temps que le train prendra pour le parcourir et tu t'octrois 3 minutes de battement.
 
Reste à savoir si dans ton application, tu décides d'attribuer à chaque gare une heure de départ ...
ou si tu leur attribues uniquement un ordre de passage et tu calcules une heure moyenne de trajet ...
dans ce cas tu as effectivement une méthode qui se défend !
 
[mrbebert]
 :heink: Je n'ai pas de redondance qui ne soit pas nécessaire puisque je la contrôle selon un critère bien définit : "trajet direct".  :sol:  
Un exemple que ce type de découpe n'a parfois rien de redondant : le TGV Nord direct n'emprunte pas la même ligne MATERIELLE que le Corail Omnibus : il est donc 2 fois (ligne et train) plus nécessaire d'avoir les tronçons AC, AB et BC !
 
 :whistle: Et comme cette notion de "train direct" s'applique plus à un tronçon qu'à une gare, tu m'accorderas donc cette "révolution" de modéliser ma pensée en tronçons plutôt qu'en gares, mais chacun reste libre ses choix !  :whistle:


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1091849
unagi
Posté le 21-05-2005 à 20:39:26  profilanswer
 

[robbyone]
Peux tu me dire si mon schéma est correct? Je trouve ton idée de tronçon très bonne  :pt1cable:  
http://img269.echo.cx/my.php?image=schema21mai1qu.png
 :ange: merci d'avance

n°1092381
unagi
Posté le 22-05-2005 à 14:37:44  profilanswer
 

J'ai fait le modèle logique de données suivant  :bounce:  
Qu'en pensez-vous? :sarcastic:  
 
Remise(Num_remise, Carte 12-25 ans, Carte Senior, Carte Escapades, Carte Famille Nombreuse, Carte Militaire)
 
Client(Num_client, Titre, Nom, Prénom, Adresse, Code Postal, Ville, Téléphone, Email, Date de Naissance, @[Num_remise])
 
Billet(Num_billet, Description_billet, Date d’achat, @[Num_client, Num_remise], @[Num_trajet, Classe], @[Distance, Prix, Heure_départ, Départ, Arrivée])
 
Trajet(Num_trajet, Description_trajet, @[Num_train, Classe], @[Num_remise], @[Num_tronçon, Distance, Prix, Heure_départ, Départ, Arrivée]
 
Tronçon(Num_tronçon, Distance, Prix, Heure_départ, Départ, Arrivée, @[Num_station])
 
Station(Num_station, Nom_station, @[Num_localité])
 
Localité(Num_localité, Nom_localité, Département)
 
Train(Num_train, Description_train, Classe, Nb_places, Vitesse, Voiture, @[Num_services], @[Num_frequence], @[Num_trajet])
 
Services(Num_services, Bar, Borne_web, Accès_handicapés, Non_fumeur, Location_dvd, Prise_portable)
 
Frequence(Num_frequence, Quotidien, Samedis, Dimanches_fetes)
 
 :??:  

n°1092617
unagi
Posté le 22-05-2005 à 17:33:23  profilanswer
 

En fait pour éviter les 0,1 - 1,1  :sarcastic: j'ai changé un peu :
 
Client(Num_client, Titre, Nom, Prénom, Adresse, Code Postal, Ville, Téléphone, Email, Date de Naissance, Remise)
 
Billet(Num_billet, Description_billet, @[Num_client, Remise], @[Num_trajet, Classe], @[Distance, Prix, Heure_départ, Départ, Arrivée], Date d’achat)
 
Trajet(Num_trajet, Description_trajet, @[Num_train, Classe], @[Num_tronçon, Distance, Prix, Heure_départ, Départ, Arrivée])
 
Tronçon(Num_tronçon, Distance, Prix, Heure_départ, Départ, Arrivée, @[Num_station])
 
Station(Num_station, Nom_station, Nom_localité, Département)
 
Train(Num_train, Description_train, Classe, Nb_places, Vitesse, Voiture, Bar, Borne_web, Accès_handicapés, Non_fumeur, Location_dvd, Prise_portable, Quotidien, Samedis, Dimanches_fetes)
 
Vous pensez que mon modèle est mieux?  :??:  
De plus, j'ai une question : Est on limité dans le nombre de clés étrangères dans une relation?
Merci!  :)

n°1093098
robbyone
Non pas !
Posté le 23-05-2005 à 10:56:38  profilanswer
 

Bonjour unagi,
 
pour ton modèle, je me pose la question du besoin de lier les tables troçon et trajet.
Chaque trajet peut être recalculé à partir des tronçons donc inutile de mémoriser les trajets.
Par contre, pour simuler la réalité, la table trajet pourrait correspondre à une sauvegarde des réservations permettant au voyageur de retrouver son dossier sans revoir tout recommencer, mais ces données seraient donc perissable ...


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1094233
unagi
Posté le 23-05-2005 à 22:53:12  profilanswer
 

[robbyone]
Ne pas lier les tables troncon et trajet? mais elles le sont forcément, si je dis qu'un trajet est la somme d'un ou plusieurs tronçons, non?  :??:

mood
Publicité
Posté le 23-05-2005 à 22:53:12  profilanswer
 

n°1096319
robbyone
Non pas !
Posté le 25-05-2005 à 11:45:49  profilanswer
 

:non: Je m'explique :  :)  
 
si tu veux aller de A à D :  
1_ tu détermines les trains partant de A qui arriveront à D.
 
Le réseau sncf a "cela de bien" qu'un numéro de train ne se retrouvera pas sur deux trajets distincts.
2_ à partir de là, tu recherches les tronçons parcourus par le train
3_ et tu reconstitues peu à peu le trajet.
 
Il est donc inutile de stoquer en bdd que le trajet (A,D) est constitué des tronçons AB, BC et CD !
Le lien entre trajet et tronçons existe donc uniquement au niveau applicatif.
 
 :sol:


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1097252
unagi
Posté le 25-05-2005 à 20:40:07  profilanswer
 

:sarcastic: Dc en fait le train est lié au numéro de troncon, et le trajet est lié au numéro de train? :sarcastic:  
 
Ce qui me ferait qqch du genre :bounce: :
 
Client(Num_client, Titre, Nom, Prénom, Adresse, Code Postal, Ville, Téléphone, Email, Date de Naissance, Remise)
 
Billet(Num_billet, Description_billet, @[Num_client], @[Num_trajet], Date d’achat)
 
Trajet(Num_trajet, Description_trajet, @[Num_train])
 
Tronçon(Num_tronçon, Distance, Prix, Heure_départ, Départ, Arrivée, @[Num_station])
 
Station(Num_station, Nom_station, Nom_localité, Département)
 
Train(Num_train, Description_train, Classe, Nb_places, Vitesse, Voiture, Bar, Borne_web, Accès_handicapés, Non_fumeur, Location_dvd, Prise_portable, Quotidien, Samedis, Dimanches_fetes, @[Num_troncon])  
 
 
Ai-je bien compris?  :heink:

n°1097315
robbyone
Non pas !
Posté le 25-05-2005 à 21:54:48  profilanswer
 

Mettre la référence aux trains sur chaque tronçon
et pas l'inverse.
A part ça, ça se tient.

n°1098726
unagi
Posté le 26-05-2005 à 21:10:21  profilanswer
 

:) avec un graphe de ce genre ?
http://img28.echo.cx/my.php?image=schma260523rp.png :sol:  
 
 
merci encore a tous  :love:

n°1099305
robbyone
Non pas !
Posté le 27-05-2005 à 11:43:57  profilanswer
 

On y voit plus clair avec ton graphe et ce qui ne va pas est  :heink: :
1_ le lien physique entre les tables troncçon et trajet (à moins qu'il ne soit que sémentique mais je ne crois pas vu la précence du champ num_troncçon) ;)  
2_ les champs num_tronçon dans les tables trajet et billet sont en trop  :non: (relégués au niveau applicatif cf plus loin)
3_ je ne vois pas à quoi servira la table trajet (à supprimer)  :??:  
4_ les champs stations de départ et d'arrivée ont disparu du billet !!!  :sweat: Il manque alors le lien de cette table vers la table station  :sol:  
 
Je résume donc  :ange: :
* du point de vue du client, il faut "son billet" qui doit comporter en plus "les stations de départ et d'arrivée" (la table trajet ne me sert pas !?!) et il faut un lien avec la table station : donc le premier groupe de tables liées est : client, billet, train et station. :jap:  
 
* du point de vue du réseau ferrovière, seules les deux tables "tronçon et station" sont utiles et sont liées. :jap:  
 
Ainsi, je te précise que dans une base de données toutes les tables ne sont pas nécessairement liées. :jap:  
Ici avec les modification apportées ci-dessus, la table station est liée à la fois au billet et aux tronçons mais ne fait aucunement de lien entre ces deux tables. :jap:  
 
Et je le répète, c'est au niveau applicatif que sera détermminé le trajet/tronçon entre les gares de départ et d'arrivée. Il n'est pas nécessaire et redondant de figer en bdd l'ensemble des tronçons composant un trajet. :non:  
 
Voilà ...
en espérant t'avoir aidé sans avoir été trop directif (lol je sais, le mot est faible) :D  
Fais surtout comme tu le sens afin de maîtriser ton sujet.
 
Bonne continuation,
R.


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1100290
unagi
Posté le 28-05-2005 à 12:57:54  profilanswer
 

[robbyone]
 
 :) Merci pour toutes ces indications  :) , je pense qu'il y a quelques petites notions qui me manquent, je ne savais pas par exemple que toutes les tables n'étaient pas nécessairement liées...  :(  
 
J'ai fait un nouveau graphe  :sarcastic:  
http://img229.echo.cx/img229/5402/schema28059lz.jpg
 
et un nouveau modèle logique des données (avec 7 relations)  :sarcastic:  
Client(Num_client, Titre, Nom, Prénom, Adresse, Code Postal, Ville, Téléphone, Email, Date de Naissance, Remise)
 
Train(Num_train, Description_train, Classe, Nb_places, Vitesse, Voiture, Bar, Borne_web, Accès_handicapés, Non_fumeur, Location_dvd, Prise_portable, Quotidien, Samedis, Dimanches_fetes)
 
Billet(Num_billet, @[Num_client], @[Num_train], @[Départ, Arrivée])
 
Station(Num_station, Nom_station, Nom_localité, Département)
 
Commande(@[Num_client], @[Num_billet], Date_achat)
 
Tronçon(Num_tronçon, Distance, Prix, Heure_départ, Départ, Arrivée, @[Num_station], @[Num_train])
 
Trajet(@[Num_troncon], @[Depart, Arrivee, Heure_depart])
 
Est-ce que je commence à comprendre?  :??:  :cry:  

n°1100366
robbyone
Non pas !
Posté le 28-05-2005 à 15:19:19  profilanswer
 

y a plus qu'à ! :bounce:  :D


Message édité par robbyone le 28-05-2005 à 15:19:29

---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1100401
unagi
Posté le 28-05-2005 à 15:51:10  profilanswer
 

super !!!  :pt1cable:

n°1100449
unagi
Posté le 28-05-2005 à 16:50:14  profilanswer
 

En fait ma relation Trajet  :sarcastic: est completement inutile je crois.

n°1100464
unagi
Posté le 28-05-2005 à 17:12:35  profilanswer
 

Je suis sur SQLyog de MySQL, et quand je créé ma table Billet, je ne peux pas créer plus de 2 clés étrangères, c'est normal?  :(  :??:  
 
create table version1.billet(
num_billet int not null primary key,
num_client int not null,
num_train int not null,
depart varchar(15) not null,
arrivee varchar(15) not null,
foreign key (num_client) references client(num_client),
foreign key (num_train) references train(num_train),
foreign key (depart) references troncon(depart),
foreign key (arrivee) references troncon(arrivee)
);

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Indice de ligne dans une requête SQL[SQL] Requete (max, group by,...)
[URGENT Erreur SQL] Moteur de recherche PHP/SQL via formulaire HTMLdebutante fille postgres transactions dblinks
[Débutant] Requête SqlDate système - Help
Recuperer la date systemeContraintes en SQL
Pb modelisation Entité-Associationdébutante en programmation cherche de l'aide
Plus de sujets relatifs à : Débutante SQL : modélisation système train


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR