IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Incrementation MYSQL par seconde


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut Incrementation MYSQL par seconde
    Bonjour !

    Alors, j'ai actuellement des difficultés pour trouver la bonne solution à mon problème.Tout d'abord, voilà le problème.


    J'ai une base de donnée MySQL, contenant un forum, ainsi que trois autres tables : fdp_character, fdp_characterskills, fdp_skills.

    Chaque personnage, stocké dans la table fdp_character a une id qui lui est propre, un niveau etc .. ainsi que l'ID du skill qu'il apprend ( le learning_skill ).

    Les skills de chaque personnages, sont stockés dans la table fdp_characterskills, et contiennent : une id ( autoincrementée ), l'id du personnage, l'id du skill, le niveau du skill, l'expérience accumulé pour ce skill.

    Enfin, j'ai ma table fdp_skills, qui donne les définitions d'un skill ( id, nom, description, expérience requise pour avoir un niveau en plus ).


    Et enfin, arrive mon système qui permet une cohésion entre ces trois tables, c'est à dire, le système qui gère l'expérience, la montée de niveau, des personnages et des compétences :

    En premier lieu, le script ajoute X points d'expérience au personnage, puis vérifie que l'expérience accumulée par le personnage est supérieure ou égale à l'expérience nécessaire pour passer un niveau, si l'expérience est acquise, on ajoute un niveau.

    Ensuite, il vérifie que le learning_skill du personnage est > 0. Si c'est le cas, il ajoute Y points d'xp à la compétence, puis récupère la définition du skill ( qui a pour id learning_skill ) dans la table fdp_skills, ainsi que la ligne correspondant au skill ( d'id learning_skill, et qui a pour character_id, l'id du personnage ), et vérifie que l'xp accumulée > l'xp requise. Si oui, il ajoute un niveau, sinon, il ne fait rien.

    Ce système, est lourd, et est cronné afin d'être effectué une fois par heure, pour tous les personnages.

    Le problème, c'est que j'aimerai faire un système d'expérience en temps réel. C'est à dire, un script, qui ajoute chaque secondes, ou toutes les 10 secondes, les points d'expérience, et vérifie si le niveau du personnage ou d'une compétence est augmentée, puis appelle un autre script si c'est justement le cas, avec l'id du personnage.

    Cependant, je ne sais pas du tout comment m'y prendre, pour ne pas faire un script lourd et chiant. Pour l'instant, j'ai pensé à une requête UPDATE, d'incrémentation, qui ajoute +X à l'xp chaque seconde, puis enfin, une requête SELECT qui vérifie que l'xp acquis > xp requis, et envoi à une fonction, ou à un autre script, l'id du personnage à vérifier.
    Mais, ça reviendrait à environ 172800 requêtes à la journée, ( 2 à la seconde ), en plus des requêtes venant du forum, et d'autres applications web lourdes ( Wiki etc .. ).

    Ma question : Est-il possible d'optimiser cette idée, afin d'arriver à un minimum de requête pour un maximum d'efficacité ?

    ( Merci aux courageux qui me liront jusqu'au bout, et me répondront. )

    Cordialement,

    Aymeric

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    salut!
    Ton ihm est en flash ?
    Si oui, xmlsocket
    Si non, ajax simplifié qui stock en session

  3. #3
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut
    Alors, je ne connais pas grand chose au flash ou au ajax, mais si j'en ai besoin, je veux bien m'y mettre.
    En revanche, je me demande en quoi c'est mieux que le PHP, si c'est pour effectuer la même boucle infinie ?

Discussions similaires

  1. Pb images par seconde
    Par Greutzeb dans le forum DirectX
    Réponses: 10
    Dernier message: 01/01/2005, 20h04
  2. Problème de nb d'images par seconde
    Par Francky033 dans le forum DirectX
    Réponses: 7
    Dernier message: 17/04/2004, 10h37
  3. problème de connection mysql par tcp/ip
    Par leroyphil dans le forum Administration
    Réponses: 5
    Dernier message: 04/09/2003, 18h27
  4. Pb 6500 verouillages de pages par seconde
    Par Laurent MALAVASI dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/07/2003, 15h03
  5. Blocage à 60 images par seconde
    Par houssa dans le forum OpenGL
    Réponses: 5
    Dernier message: 24/06/2003, 08h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo