Je crois que je peux difficilement est plus (+) d'accord avec Ter Rowan...
Pour info, l'approche sur ECLERD est un mix des deux: la population est stockée par catégorie (par tranche d'âge & corps de métier), et le moral (les troubles à l'ordre public type Emeutes) sont stockées globalement pour toute la population d'une région. Une simple moyenne permet d'avoir les troubles d'un pays.
PS: l'histoire des autres SGBD, c'était plus ironique qu'autre chose: peu importe le système que tu vas choisir, je doute que tu puisses réaliser une telle masse de calculs sans un financement adéquat pour le serveur, que ce soit en faisant des requêtes dans le PHP ou dans le SGBD via des procédures.
Citation :pour éviter de mettre un RAND(), je crée une colonne "priorité" ...C'est exactement ce que faisait l'ajout d'une colonne supplémentaire & le UPDATE... RAND() de l'exemple, tu choisis après ce que tu mets comme règles là-dedans (et, oui, rien ne t'oblige à re-exécuter ce UPDATE à chaque simulation si c'est inutile). A voir si un INDEX là dessus est intéressant ou non (ie: le temps d'UPDATE de l'INDEX face au temps d'utilisation dans le INSERT ... ON DUPLICATE...).
Citation :pas traiter toute la population individuellementC'est exactement ce que j'entendais par tu as un soucis dans l'objectif général du jeu ou dans ton modèle. Un autre possibilité est de ne pas considérer le moral par catégorie de population, mais globalement. Tu peux alors conserver 1 enregistrement (1 ligne) par personnage (même si c'est complètement redondant), et avoir 1 ligne pour le moral général de toute la population du joueur. Ce moral se calcul alors simplement par un UPDATE joueur_stats INNER JOIN joueur_ressources ON joueur_ressources.id_joueur = joueur_stats.id_joueur SET moral = IF((SELECT SUM(eat) FROM population WHERE population.id_joueur = joueur_stats.id_joueur) >= joueur_ressources.quantite, moral + 20, moral - 20) ou autre règle proportionnelle (MySQL est plutôt véloce quand il s'agit de sommer les données sur un index).
Pour info, l'approche sur ECLERD est un mix des deux: la population est stockée par catégorie (par tranche d'âge & corps de métier), et le moral (les troubles à l'ordre public type Emeutes) sont stockées globalement pour toute la population d'une région. Une simple moyenne permet d'avoir les troubles d'un pays.
PS: l'histoire des autres SGBD, c'était plus ironique qu'autre chose: peu importe le système que tu vas choisir, je doute que tu puisses réaliser une telle masse de calculs sans un financement adéquat pour le serveur, que ce soit en faisant des requêtes dans le PHP ou dans le SGBD via des procédures.