Eléphant du PHP |
422 Messages
14 mai 2008, 16:01
Pour faire simple :
- je ne pense pas que les données soient de type temporel, mais plutôt de type score numérique qui est affiché sous une forme temporelle uniquement pour des raisons de lisibilité.
- je ne suis pas sûr que faire un
order by concat (date_format(minutesec, '%h:%i:%s', '.', cast(milli as char)) soit extrêmement efficace
- je n'y connais pas grand chose en rallye, mais pour afficher le tableau des classements avec la différence de temps entre chaque concurrent et le vainqueur de chaque spéciale, il va falloir convertir en millisecondes avant de faire la soustraction ; de même pour le temps cumulé de chaque spéciale pour établir le temps total du rallye. Donc, je pense que la conversion en millisecondes sera faite à un moment ou à un autre.
- quand je parle de fonctions qui convertissent milli->h:mn:sec:milli et inversement, je ne pensais pas forcément à des fonctions PHP, mais à des fonctions MySQL qui peuvent être utilisées dans les requêtes.
- enfin, j'imagine que pour un rallye donné (clause where), on va afficher les temps des 10 spéciales et des 20 pilotes, soit 200 résultats. Donc, à mon avis, la différence de performances (si elle est avérée) va être négligeable et personnellement, j'irai vers la méthode la plus rustique.
Ce qui est par contre dommage, c'est que la doc de MySQL parle de microsecondes, que la fonction date_format possède un argument pour afficher les microsecondes, mais quand on enregistre un temps avec des microsecondes, la partie fractionnaire (sous la seconde) ne soit pas stockée. Là encore, je pense que le stockage dans une seule colonne permettra de faire une évolution à moindre frais quand ces microsecondes seront implémentées.
Mais ce n'est qu'un avis
