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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Enregistrer un graphe dans une base...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Enregistrer un graphe dans une base...

n°347078
Tetedeienc​h
Head Of God
Posté le 29-03-2003 à 06:58:48  profilanswer
 

Hello tous !
 
J'ai besoin d'enregistrer un graphe dans une base tournant sous un MySQL.
 
Le graphe se compose actuellement de 40 valeurs relevees a des espaces predefinis.
 
Ce graphe est principalement compose de variation minimes sur l'axe des y, et a beaucoup l'apparence d'une ligne droite augmentant un peu et baissant un peu.
 
Quel est la meilleure facon de l'enregistrer a votre humble avis ?
 
Tout d'abord le format. Pour l'instant, j'utilise une chaine de caractere avec | comme separateur, en limiutant les float au format 9.99 . Une meilleure idee ? Ca doit passer sous MySql ;)
 
Ensuite, les mesures. Quelle est la facon la plus efficace d'enregistrer ce graphe ? Trouver des points de controle ? Chercher a quel endroit ca change enormement ?
 
Je vous remercie de toutes les idees que vous pourrez apporter =)
 
Pensez que l'espace est plus important que le temps de calcul dans mon cas, mais que les deux parametres se doivent de rester modestes quand meme ;) Jre peux pas lacher des integrales et autres quoi ;)

mood
Publicité
Posté le 29-03-2003 à 06:58:48  profilanswer
 

n°347134
MagicBuzz
Posté le 29-03-2003 à 12:31:56  profilanswer
 

Les graphs c'est un peu loin derrière moi, et habituellement, je me base sur des applications physiques pour modéliser mes bases et alogs, par sur des concepts mathématiques qui m'embrouillent.
 
Donc si tu pouvais poster un petit exemple, ou une appplication physique pour qu'on puisse mieu se représenter ton problème, ça pourrait certainement nous aider...
 
Bon, ton histoire de ligne avec variations me fait bêtement penser à une évolution d'une valeur dans le temps, comme le cours de la bourse par exemple.
 
-> Si les points sont répartis de façon homogène selon X, et que chaque point n'est connecté qu'aux points ayant la valeur précédente et suivante de X, alors il suffit que tu stockes ton graphe dans une table ne reprennant comme clé les couples X,Y et la valeur associée s'il y en a une.
Pour les requêtes, tu pourras sans problème te baser sur les fonctions statistiques telles que éccart type ou autres, ce sera très rapide, et tu n'aura pas de perte de place.
 
-> Si les points forment un nuage, c'est plus chiant. Tu stockes de la même façon, mais avec un ID en plus, et une seconde table qui va stocker les liaisons entre les points. A priori, là tu devrait pouvoir t'en sortir de la même façon. A savoir que sous Oracle il y a une instruction "conect by" qui permet de suivre un cheminement père/fils, qui pourrait te venir en aide lors de l'interrogation. Je ne sais pas s'il y a un équivalent sous MySQL.
 
-> Si non seulement les points mais aussi les segments sont pondérés, alors il faudra stocker les pondérations des segments en plus.
 
 
Exemple des deux structures :
 

Code :
  1. La première :
  2. -------------
  3. X
  4. Y
  5. POIDS_POINT
  6. POIDS_PREV
  7. POIDS_NEXT
  8. -> (X,Y) = Clé primaire, coordonées du point
  9. -> POIDS_POINT : Pondération du point
  10. -> POIDS_PREV et POIDS_NEXT : Pondération des segements précédents et suivants. Ce ne marche qu'avec un graphe linéraire.
  11. La seconde :
  12. ------------
  13. ID
  14. X
  15. Y
  16. POIDS_POINT
  17. -> ID : Clé primaire. Identifiant du poids utilisé pour les relations entre segments
  18. -> X, Y : Clé alternative. Coordonnées du point.
  19. -> POIDS_POINT : Pondération du point.
  20. ID_PERE
  21. ID_FILS
  22. POIDS_SEG
  23. -> ID_PERE : Clé étrangère. Point de départ.
  24. -> ID_FILS : Clé étrangère. Point d'arrivée.
  25. -> POIDS_SEG : Pondération du segment. (le modèle est bi-directionnel)


 
Voilà, j'espère que ça pourra t'être utile, mais vu que je vois pas ce qu'est ton graph, et encore moins ce que tu veux en faire, je peux pas t'aider plus.


Message édité par MagicBuzz le 29-03-2003 à 12:32:14
n°347766
Tetedeienc​h
Head Of God
Posté le 30-03-2003 à 22:01:14  profilanswer
 

Mon graphe est une mesure dans le temps ( donc c'est lineaire et j'ai qu'a les relier )
 
Mes donnees sont du type :


 X    Y
0.5  2.2
1.0  2.3
1.5  2.1
2.0  2.1


 
Le Y ne variant pas enormement, et le X est pour l'instant fixe ( donc pas la peine de l'enregistrer ).
 
Pour l'instant, j'enregistre mon graphe sous la forme :  
 
2.2|2.3|2.1|2.1|...
 
Et je me demandais si il y avait plus pratique, car comme j'ai 5 courbes chacunes faites de 40 mesures, je tape le Ko dans la base et c'est beaucoup trop :/
 

n°347819
MagicBuzz
Posté le 30-03-2003 à 23:17:31  profilanswer
 

Non non, utilise mon premier système.
 
1) Enregistre X, car pour certains calculs il te sera utile.
2) Fait une ligne par mesure, comme ça tu peux faire la plupart des calculs directement dans la base, ce qui sera bien plus rapide que tout récupérer à chaque fois, spliter dans un tableau, et traîter en PHP ou autre.
3) Ajoute un champs pour stocker l'ID de la courbe.
 
Genre :
 

Code :
  1. MESURES
  2. COURBE_ID
  3. X
  4. Y
  5. Avec COURBE_ID et X en clé primaire. (plus plus de propreté, je te conseille de faire un ID séparré, et de mettre un indexe unique - clé laternative - sur COURBE_ID et X)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Enregistrer un graphe dans une base...

 

Sujets relatifs
[ SQL serveur ] - récuperer en SQL la structure d'une base / d'une ...problème bizarre: connexion base mysql
[ACCESS] Transférer ds une Base principale les données d'autres BasesPeut on attaquer une base de donnée ORACLE depuis le php ou autre
Récupérer le nom de champs d'une base de données Accesslogger les connections a une base ORACLE ?
CMS: base de connaissance sur IntranetPHP : question de base
Php et base de données!!!Novice cherche a dev site WEB avec base d'images ...
Plus de sujets relatifs à : Enregistrer un graphe dans une base...


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