Comme l'a démontré xenos, ma solution a une faille. En effet si le script est appelle plusieurs fois au meme moment, il y a un risque qu'il s'exécute plusieurs fois et les actions seront donc traitées plus d'une fois.
Sur un petit jeu, la probabilité est presque nulle, sur un gros elle n'est plus négligeable.
Tu peux meme réduire se risque en faisant la requete pour recevoir la liste d'actions a executer puis de les supprimer juste apres.
Aussi, meme si les requetes sql sont croisées, elles ne peuvent pas être simultanées, pourquoi ne pas faire cette instruction select/delete en passant par une multi query?
Sinon pour ta question, vu que tu as les timestamp des actions, il te suffit de les traiter dans l'ordre ( timestamp croissant) et a chaque action traitee, la mettre a jour dans la base de donee, ainsi l'action suivante sur ce meme joueur pourras obtenir les infos sur ce dernier tel qu'il aurait été a ce timestamp la dans la bdd. (Pas évident a expliquer)
Sur un petit jeu, la probabilité est presque nulle, sur un gros elle n'est plus négligeable.
Tu peux meme réduire se risque en faisant la requete pour recevoir la liste d'actions a executer puis de les supprimer juste apres.
Aussi, meme si les requetes sql sont croisées, elles ne peuvent pas être simultanées, pourquoi ne pas faire cette instruction select/delete en passant par une multi query?
Sinon pour ta question, vu que tu as les timestamp des actions, il te suffit de les traiter dans l'ordre ( timestamp croissant) et a chaque action traitee, la mettre a jour dans la base de donee, ainsi l'action suivante sur ce meme joueur pourras obtenir les infos sur ce dernier tel qu'il aurait été a ce timestamp la dans la bdd. (Pas évident a expliquer)