15-07-2010, 03:11 AM
Citation :Le problème de cette approche, c'est quand il y a beaucoup d'interactions entre les joueurs, ou si les joueurs ne se déconnectent pas vraiment.C'est effectivement pas à la connexion qu'il faut le faire, mais à chaque nouvelle page demandé.
Mais plutôt que de faire un update de la table il vaut mieux enregistrer le timestamp du début et créer une vue (ou une requête préparé) qui va calculer à partir du timestamp la nouvelle valeur.
Exemple pour les PV
Citation :SELECT pv_origine*POW(1.01,(UNIX_TIMESTAMP()-timestamp) DIV (15*60)) as nouveau_pv FROM table WHERE id=%dIci on a bien une augmentation de 1% des points de vie toutes les 15 minutes.
Donc l'idée c'est de faire le calcul à la lecture (quand on en a besoin) et pas de le faire toutes les 15 minutes.
Ensuite çà ne t'empêche pas de faire un update lorsqu'il y a un évènement particulier qui va par exemple retirer des pv. Dans ce cas, tu indiques la nouvelle valeur et tu mets à jour le timestamp.