Eléphant du PHP |
422 Messages
03 mai 2008, 12:03
@Cyrano
Je ne parle pas de l'efficacité du codage, mais de l'efficacité de l'exécution. Tu as donc privilégié la portabilité en utilisant PDO (excellent choix d'ailleurs).
Tu confirmes d'ailleurs mon expérience des clients qui choisissent MySQL ou Postgresql : le risque d'évoluer vers Oracle ou SQL Server est beaucoup plus grand que lorsque le client choisit d'entrée Oracle ou SQL Server (je n'en ai jamais vu qui décide de migrer d'Oracle vers MySQL). Je nuancerais également avec la taille du client : récemment, j'ai développé un site Web pour une assoc loi 1901 avec un budget de 1000 euros annuel. On a pris MySQL et un hébergement mutualisé : ça m'étonnerait grandement qu'un jour ils passent sous Oracle. Donc pourquoi se priver des fonctions spécifiques MySQL ?
Tant que tu utilises des ordres SQL standard (des SELECT, UPDATE ou INSERT simples), il n'y a aucun souci. Les choses se compliquent avec des requêtes qui utilisent des fonctions ou des requêtes complexes comme celle objet de ce post.
Par exemple, pour résoudre le problème objet de ce thread, on peut tout à fait s'en sortir avec du SQL standard avec une requête sur les villes, puis pour chacune d'entre elle avec une requête de comptage sur les associations et enfin faire le traitement du croisement en PHP.
Donc, encore une fois, je suis nuancé : faire du SQL standard (si tant est que cela veuille dire quelque chose car le noyau commun à tous les dialectes SQL est vraiment très pauvre) pourquoi pas ? Comme toujours lorsqu'il y a un choix, il y a des avantages et des inconvénients.
PS : MySQL n'est pas un vrai SGBDR au passage
Ah bon ? MySQL est un SGBD et il utilise l'algèbre relationnelle.
Je ne voudrais pas paraître désagréable, mais en 1998 on nous a imposé de travailler avec Postgresql. J'espère que la fiabilité et les performances de ce moteur ont été améliorées en 10 ans, parce que c'était une véritable catastrophe : ça plantait une fois par semaine et quand ça plantait on perdait les bases.