par
Hubert Roksor » 30 sept. 2006, 16:14
on creer un fichier contenant toutes les variables [...] et on utilise les constantes pour les requetes et manipulations php? [...] c est le principe?
Exactement. De cette façon, ton code PHP reste lisible parce que tu utilises des noms comme 'MATIN' ou 'SOIR' mais les requêtes, elles, contiennent la valeurs correspondant (1 ou 2 par exemple).
moins evident a gerer sur le long terme par rapport a un fichier de constantes qui servirait d aide memoire tres utile?
Sous phpMyAdmin ou dans le code de création de la table tu as forcément la liste des valeurs possibles. Si le champs "horaire" est de type
ENUM('matin', 'midi', 'soir') tu ne pourras rien rentrer d'autre que 'matin', 'midi' ou 'soir'.
select membreid FROM journee WHERE momentdelajournee=1
est plus rapide que momentdelajournee='matin' ?
Pour te donner un ordre de grandeur, disons qu'un page web bien conçue demande 100ms. Le SELECT avec ENUM prendra peut-être 2ms, le même SELECT avec un chiffre (constante PHP) prendra quelque chose comme 1.8ms (mais ce que tu gagnes en MySQL tu le perds en PHP qui est obligé de "traduire" la constante). Le même SELECT avec un champs VARCHAR(255) prendrait... 2-3ms ? Autant dire qu'il ne s'agit pas vraiment d'un problème de performance puisque la requête en elle-même ne représente qu'une partie infime du travail nécessaire à la génération d'une page.
Quant à l'insertion... pas vraiment, les INSERT sont vraiment rapides, pas de quoi s'affoler.
[quote="iruka2"]on creer un fichier contenant toutes les variables [...] et on utilise les constantes pour les requetes et manipulations php? [...] c est le principe?[/quote]
Exactement. De cette façon, ton code PHP reste lisible parce que tu utilises des noms comme 'MATIN' ou 'SOIR' mais les requêtes, elles, contiennent la valeurs correspondant (1 ou 2 par exemple).
[quote]moins evident a gerer sur le long terme par rapport a un fichier de constantes qui servirait d aide memoire tres utile?[/quote]
Sous phpMyAdmin ou dans le code de création de la table tu as forcément la liste des valeurs possibles. Si le champs "horaire" est de type [b]ENUM('matin', 'midi', 'soir')[/b] tu ne pourras rien rentrer d'autre que 'matin', 'midi' ou 'soir'.
[quote]select membreid FROM journee WHERE momentdelajournee=1
est plus rapide que momentdelajournee='matin' ?[/quote]
Pour te donner un ordre de grandeur, disons qu'un page web bien conçue demande 100ms. Le SELECT avec ENUM prendra peut-être 2ms, le même SELECT avec un chiffre (constante PHP) prendra quelque chose comme 1.8ms (mais ce que tu gagnes en MySQL tu le perds en PHP qui est obligé de "traduire" la constante). Le même SELECT avec un champs VARCHAR(255) prendrait... 2-3ms ? Autant dire qu'il ne s'agit pas vraiment d'un problème de performance puisque la requête en elle-même ne représente qu'une partie infime du travail nécessaire à la génération d'une page.
Quant à l'insertion... pas vraiment, les INSERT sont vraiment rapides, pas de quoi s'affoler.