Oui, je stockerai les quêtes résolues dans une table type "idJoueur, idQuete, dateDebut, dateFin,...<autres stats>" (et les seuils dans un fichier de constantes).
Si un joueur ne peut finir une quête qu'une fois, une clef primaire sur la paire d'id sera certainement intéressante.
L'ajout de nouvelles quêtes sera d'ailleurs facilité (je suppose que plein de nouvelles quêtes s'ajouteront peu à peu).
En revanche, si la table des quêtes résolues stocke la date de fin de quête (cette table pourrait d'ailleurs ajouter un flag BIT(1) indiquant si la quête est réussie ou échouée), j'utiliserai la date de dernière visite du joueur (en BDD ou en session, voire les deux) pour piocher les quêtes résolues.
Après, si tu veux pas faire cette "pioche" trop souvent, tu peux ajouter une date dans la session indiquant le dernier "contrôle" ainsi effectué, et ne refaire un contrôle des quêtes résolues que toutes les 5 minutes (ou toutes les heures).
Si un joueur ne peut finir une quête qu'une fois, une clef primaire sur la paire d'id sera certainement intéressante.
L'ajout de nouvelles quêtes sera d'ailleurs facilité (je suppose que plein de nouvelles quêtes s'ajouteront peu à peu).
En revanche, si la table des quêtes résolues stocke la date de fin de quête (cette table pourrait d'ailleurs ajouter un flag BIT(1) indiquant si la quête est réussie ou échouée), j'utiliserai la date de dernière visite du joueur (en BDD ou en session, voire les deux) pour piocher les quêtes résolues.
Après, si tu veux pas faire cette "pioche" trop souvent, tu peux ajouter une date dans la session indiquant le dernier "contrôle" ainsi effectué, et ne refaire un contrôle des quêtes résolues que toutes les 5 minutes (ou toutes les heures).