Bonjour,
Je ne suis pas un spécialiste de mysql et il se peut qu'il y ait dans ma réponse des erreurs de syntaxe.
A priori, je répondrais à ton problème en créant 4 tables :
- une table équipe avec un id, son nom, etc
- une table match avec un id, une date, etc
- une table score_exterieur avec une clé externe vers la table équipe et une clé externe avec la table match, un nombre de points, et le nombre de buts (panier, ...)
- une table score_recevant avec les mêmes données
puis j'écrirais la requête suivante (mais je ne l'ai pas vérifié)
SELECT nom_equipe,
(SUM(score_recevant.point)+SUM(score_exterieur.point)) AS sum_points,
(SUM(score_recevant.but)+SUM(score_exterieur.but)) AS sum_but
FROM equipe, match, score_recevant, score_exterieur
WHERE equipe.id_equipe=score_exterieur.id_equipe AND equipe.id_equipe=score_recevant.id_equipe
ORDER BY sum_point, sum_but
Cela nécessite évidement de calculer les points au moment de la saisie du match mais la fonction peut être automatisée avec une table complémentaire qui donne les points en fonction du type de sport, ...
On peut aussi gérer la notion d'année.
En procédant ainsi tu profites au maximum des potentialités de la base de données en ayant toujours des calculs temps réels. Je crois en outre que le résultat de la requête risque de se mettre en cache si elle est exécutée plusieurs fois et donc améliorer le temps de réponse.
Partager