J'avais un problème du même style : afficher la liste des persos + certaines caractéristiques, notamment la santé qui se régénère régulièrement.
J'ai donc créé une vue avec un champ qui calcule automatiquement la valeur de la caractéristique au moment présent, en fonction de la valeur réelle ( celle dans la table en dur ), de la date de la dernière update de la santé, de la santé maximum et de la fréquence de régénération. Celles-ci se mettaient réellement à jour lorsqu'il y avait lieu de le faire : connexion du joueur ou modif de la caractéristique ( attaque, potion... )
La requête derrière la vue n'est pas lourde, contrairement à ce qu'on peut penser, le champ en question ne comporte que quelques simples calculs.
Ce système me permet d'avoir un affichage en temps réel des données en mouvement, limite le nombre d'accès à la BDD ( imaginez que vous ayez 4000 joueurs, et seulement 300 actifs, seuls les 300 actifs seront concernés par les updates ) et elle ne se heurte pas au problème souligné par Globe, les données réelles étant disponibles à tout moment.
J'ai donc créé une vue avec un champ qui calcule automatiquement la valeur de la caractéristique au moment présent, en fonction de la valeur réelle ( celle dans la table en dur ), de la date de la dernière update de la santé, de la santé maximum et de la fréquence de régénération. Celles-ci se mettaient réellement à jour lorsqu'il y avait lieu de le faire : connexion du joueur ou modif de la caractéristique ( attaque, potion... )
La requête derrière la vue n'est pas lourde, contrairement à ce qu'on peut penser, le champ en question ne comporte que quelques simples calculs.
Ce système me permet d'avoir un affichage en temps réel des données en mouvement, limite le nombre d'accès à la BDD ( imaginez que vous ayez 4000 joueurs, et seulement 300 actifs, seuls les 300 actifs seront concernés par les updates ) et elle ne se heurte pas au problème souligné par Globe, les données réelles étant disponibles à tout moment.