Gestion de base de données

Gestion de base de données - SQL/NoSQL - Programmation

Marsh Posté le 11-02-2008 à 14:54:58    

je suis entrain de faire un projet de localisation des véhicules en temps réel a l'aide du système GPS, pour cela j'ai utiliser postgresql/postgis comme base de données.
 le probleme que j'ai eu est au niveau de la conception; j'ai une base de données qui contient plusieurs tables(client,chauffeur, voiture,point d'interet, position, historique...).
je vais vous expliquer un peu; chaque client possede plusieurs voitures avec leurs chauffeurs, j'ai aussi une table appelé position qui contient les positions des voitures.
ce que je veux connaitre: es ce que j'ai besoin de creer une table pour chaque voiture et es ce que je dois  creer aussi plusieurs tables position (une table pour chaque voiture),
ou bien j'ai besoin seulement une seule table voiture et une seule table position, si oui comment je devrais faire?
je suis vraiment coincé.
j'ai besoin de votre aide,
merci d'avance ,  
 
 
Cordialement
ramzi08


Message édité par ramzi08 le 12-02-2008 à 08:52:22
Reply

Marsh Posté le 11-02-2008 à 14:54:58   

Reply

Marsh Posté le 12-02-2008 à 17:33:30    

une seule table avec la voiture et sa position dedans non ?

Reply

Marsh Posté le 12-02-2008 à 18:10:13    

salut ,
je pense pas car j'ai des centaines de voitures et chaque voiture pourra avoir des milliers de positions, la table position de chaque voiture doive avoir une position a chaque minute par exemple,(la table position contient; l'heure, date, latitude, longitude, vitesse,....),  ces enregistrements des positions seront durant 2 ou 3 mois, pour que lorsque je veux voir une historique ou un rapport d'activité je peux accéder aux anciennes positions,
avez-vous une idée?

Reply

Marsh Posté le 12-02-2008 à 18:57:53    

pkoi ? tu veux garder l'historique des positions des voitures ?
à ce moment, ben une table pour les voitures, et une table pour les positions...
 
dans tous les cas, je te conseille de faire un tour dans le lien de ma signature, y'a quelques éléments de base qu'il est bon de savoir

Reply

Marsh Posté le 13-02-2008 à 09:31:35    

Si je ne m'abuse, en schématisant grossièrement :  
Tu as une table Voiture disons identifiant : id_voiture.
Tu as une table Position, identifiant : id_position.
Il te faut une table Position_voiture,  identifiant : id_voiture, id_position.
 
Après, si tu veux qu'une voiture puisse avoir plusieurs fois la même position au cours du temps il faut modifier la table Position_voiture de la façon suivante :  
table Position_voiture, identifiant : id_voiture, id_position, date (HH:MM:SS).
 
Est-ce que ça répond à ta question ?

Reply

Marsh Posté le 13-02-2008 à 09:35:53    

bon, avant d'aller plus loin, j'aimerais savoir COMMENT UNE VOITURE PEUT AVOIR PLUSIEUR POSITIONS GPS

Reply

Marsh Posté le 13-02-2008 à 09:38:58    

euh... il parle de latitude et de longitude...je ne vois pas vraiment l'intérêt de creer une table  position... les redondances vont être réduites.
 
une table voiture et une table position voiture  (id_voiture, longitude, latitude, heure) et voila.
 
 
edit : quoique, si les enregistrements se font egalement quand le vehicule ne se deplace, les tables position et position_voiture peuvent effectivement avoir un interet :)


Message édité par chapi le 13-02-2008 à 09:41:07

---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 13-02-2008 à 09:40:06    

MagicBuzz a écrit :

bon, avant d'aller plus loin, j'aimerais savoir COMMENT UNE VOITURE PEUT AVOIR PLUSIEUR POSITIONS GPS


Un enregistrement toutes les minutes d'un vehicule qui se deplace....


---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 13-02-2008 à 09:40:15    

Une voiture bouge, ainsi, dans le temps, elle peut avoir plusieurs positions, non ?  ;-)

Reply

Marsh Posté le 13-02-2008 à 09:40:17    

Magic> Pour gérer ses deplacements "dans le temps" et pouvoir reconstituer ses itinéraires ( d'où la date introduite par ljo ).

 

ramzi> je te rappele que ce TD est à rendre vendredi... hurry up!

 

edit: double burn matinal [:benou_grilled]


Message édité par anapajari le 13-02-2008 à 09:41:06

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 13-02-2008 à 09:40:17   

Reply

Marsh Posté le 13-02-2008 à 09:55:43    

ljo a écrit :

Une voiture bouge, ainsi, dans le temps, elle peut avoir plusieurs positions, non ?  ;-)


donc UNE TABLE POSITION avec horrodatage.
 
pas la peine de faire une table de correspondance des positions... vous voulez énumérer tous les cm² de la planète ?
 
(en gros, on arrête de conseiller n'importe quoi :o, j'assumerai pas un 5/20 en analyse moi :o)

Message cité 2 fois
Message édité par MagicBuzz le 13-02-2008 à 09:56:37
Reply

Marsh Posté le 13-02-2008 à 10:01:15    

MagicBuzz a écrit :


donc UNE TABLE POSITION avec horrodatage.
 
pas la peine de faire une table de correspondance des positions... vous voulez énumérer tous les cm² de la planète ?
 
(en gros, on arrête de conseiller n'importe quoi :o, j'assumerai pas un 5/20 en analyse moi :o)


Comme dit plus haut, ça peut avoir un intéret certain si les enregistrements se poursuivent quand le vehicule ne se deplace pas (c'est un peu con, j'en conviens :D)
 
HS: j'en ai ras les bonbons de me taper des execute sp_executesql avec des concatenations longues comme guerre et paix pour attaquer des bases tierces :O Il y a vraiment quelquechose à faire de ce côté (bonjour la lecture du code). J'ai regardé les specs de sql 2008, je n'ai malheureusement pas vu grand chose s'y approchant

Message cité 1 fois
Message édité par chapi le 13-02-2008 à 10:03:44

---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 13-02-2008 à 10:06:24    

MagicBuzz a écrit :


donc UNE TABLE POSITION avec horrodatage.
pas la peine de faire une table de correspondance des positions... vous voulez énumérer tous les cm² de la planète ?
(en gros, on arrête de conseiller n'importe quoi :o, j'assumerai pas un 5/20 en analyse moi :o)


aaahh c'est ça que tu disais :o ... oui donc complètement d'accord

chapi a écrit :


Comme dit plus haut, ça peut avoir un intéret certain si les enregistrements se poursuivent quand le vehicule ne se deplace pas (c'est un peu con, j'en conviens :D)


J'aimerais bien savoir lequel [:w3c compliant]

Message cité 1 fois
Message édité par anapajari le 13-02-2008 à 10:07:03

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 13-02-2008 à 10:07:54    

Citation :

(en gros, on arrête de conseiller n'importe quoi :o, j'assumerai pas un 5/20 en analyse moi :o)


 
Déjà, il faudrait avoir un texte détaillé en point de départ. Pleins de solutions sont possibles, j'ai pas votre sujet de TD !!

Reply

Marsh Posté le 13-02-2008 à 10:25:43    

anapajari a écrit :


J'aimerais bien savoir lequel [:w3c compliant]


Aucun, puisque on enregistre l'horaire, on ne reduit pas le nombre de lignes...  [:redlightneon] Bon, éventuellement, ça permet d'enregistrer certaines positions clefs (genre parking de la boite...etc..) mais là faudrait encore gerer un range de longitudes et latitudes pour une position clef.......ok, je laisse béton
 
Cai Ljo qui m'a mit le doute d'abord :O


Message édité par chapi le 13-02-2008 à 10:28:21

---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 13-02-2008 à 10:26:59    

chapi a écrit :

HS: j'en ai ras les bonbons de me taper des execute sp_executesql avec des concatenations longues comme guerre et paix pour attaquer des bases tierces :O Il y a vraiment quelquechose à faire de ce côté (bonjour la lecture du code). J'ai regardé les specs de sql 2008, je n'ai malheureusement pas vu grand chose s'y approchant


pkoi tu dois passer par sp_executesql pour attaquer une base tierce :heink:
 
tu peux pas monter la base distante comme serveur partenaire ?
pas besoin de ce soit un sql server... j'ai déjà testé des jointures entre Oracle et un fichier CSV depuis le moteur SQL Server 2005 et ça marchait très bien, pas besoin de passer par des sp_executesql :heink:

Reply

Marsh Posté le 13-02-2008 à 10:32:15    

MagicBuzz a écrit :


pkoi tu dois passer par sp_executesql pour attaquer une base tierce :heink:
 
tu peux pas monter la base distante comme serveur partenaire ?
pas besoin de ce soit un sql server... j'ai déjà testé des jointures entre Oracle et un fichier CSV depuis le moteur SQL Server 2005 et ça marchait très bien, pas besoin de passer par des sp_executesql :heink:


soit une base Societe qui fait des insertions comptable dans la base sage_paris
Mes procedures sont côté Societe. L'insert sera du genre ex:  insert into dbo.sage_paris.Client (id, nom, prenom) select id, nom, prenom from Clients
 
Ca marche très bien, ça se lit très bien, mais c'est en dur. Si je veux que ma base societe puisse demain attaquer la base Sage_lyon......je l'ai dans le luc. Donc executesql....


---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 13-02-2008 à 11:08:43    

bah tu fais un sp_removeserver puis un sp_addserver avec le même nom. ça marche pas ?

Reply

Marsh Posté le 13-02-2008 à 11:25:45    

Les tables sont coexistantes sur le même serveur, mais j'ai besoin à partir de societe de faire des insertions tantôt dans sage_paris, tantôt dans sage_lyon


---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 13-02-2008 à 12:08:19    

je croix qu'en discutant  vous avez oubliez le sujet de départ!!!
vous m'avez demandez comment une voiture peuve avoir plusieurs positions, et ben oui, lorsqu'elle se déplace elle peuve avoir une position a chaque position.
Donc, je pense qu'il faut avoir une table voiture qui contient la liste des voitures(id_voiture, nom, matricule,....) et une table position(id_position, latitude, longitude, date, heure, the_geom,.....), et une table relation est il necessaire entre la table voiture et table position, si oui qu'es ce quon doit mettre dans cette table? id_voiture,id position?
 

Reply

Marsh Posté le 13-02-2008 à 13:12:23    

Non, comme on te l'a dit il te faut simplement une table voiture et une table une table position(id_position,id_voiture, latitude, longitude, date, heure, the_geom,.....)
 
id_voiture est ta clef etrangere.


---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed