13-11-2009, 02:37 AM
Citation :que pensez-vous de ce système?
y a t il des inconvénients? des trucs auxquels je n'ai pas songé?
Citation :au lieu de mettre à jour le champs "nb_de_ressource_en_blé" à chaque affichage de page, je pensais à faire ceci:En théorie c'est pas idiot, simplement çà va etre complexe de gérer tes variables session.
mettre en variable de session les données du type "nb_de_ressource_en_blé" , "production_par_heure_en_blé" et "timestamp", et à chaque changement de page, calculer les ressources à afficher mais SANS les mettre à jour (UPDATE) dans la base de donnée.
Ceci dit, tu n'as pas besoin de mettre à jour nb_de_ressource à chaque affichage
Je m'explique à chaque chargement de page tu va etre obligé de verifier si il y a pas eu un changement (attaque etc...) donc de faire un select vérifiant le timestamp.
Pourquoi dans ce cas ne pas faire simplement:
Code PHP :
<?php
SELECT nb_ressource*production_par_heure/3600*(UNIX_TIMESTAMP()-timestamp) where type='%s' AND id=%d
?
Tu fait toujours une seul requête, et çà t'évite d'avoir à gérer çà dans tes sessions. Autrement dit c'est aussi performant (voir plus car moins complexe donc moins de problème de maintenance) et en plus çà te prend moins de à faire...
Si j'ai pas été clair, ne pas hésiter à faire signe.
Sinon je t'encourage a te renseigner sur les vue en SQL (VIEW), dans ce cas ci c'est très utile en prenant en compte la requête du haut comme base de la vue. Celle ci devrait ressembler à çà:
Citation :CREATE VIEW ressources_calculees AS SELECT nb_ressource*production_par_heure/3600*(UNIX_TIMESTAMP()-timestamp) AS nb_ressource_a_jour,id,type,[...] FROM t_ressources;
Du coup dans ton code tu n'aurais plus qu'à faire:
Code PHP :
<?php
SELECT nb_ressource_a_jour where type='%s' AND id=%d