23-02-2009, 10:10 AM
Si tu veux t'économiser de la place en bdd, ne stock pas tes comtpe-rendu dans des blob.
normalement tes actions sont toutes typées
1) x fait interaction y avec z (mais les action sur soi-même répondent à ce format)
2) après il peut y avoir des "annonce générique", ou événement aléatoire
3)... je sais pas si y a vraiment d'autre format
donc tu crée des phrases modèles:
Tu attaques %s et le blesses / Tu attaques %s, mais celui-ci bloque ton attaque
etc...
au lieu de faire "la construction" des ligne du rapport durant l'action; tu stock juste l'id du modèle et des perso. (mais par contre ça te coutera plus cher vu que tu dois afficher le rapport; vu qu'à chaque fois faudra "l'écrire"... enfin a priori vu que tu rame déjà^^ c'est peut-être pas ce qui te conviendra).
Autre alternative: un fichier de log par joueur. Tu décide de conserver par défaut juste les XX dernière événement (tu peux aussi le faire avec les dates si tu y tiens); et tu fais le controle à l'affichage du rapport pour savoir si tu dois nettoyer ou pas.
(avantage, tu stocke donc toute les interactions, même en cas d'abscence prolongées, etc... celles-ci seront pas nettoyée par une routine qui vire tout au bout de X jours et tu assure que le joueur y aura donc accès au moins une fois. Faut juste assurer qu'un rapport ne grossira pas de manière infinie: genre pas qu'un gars ne lise jamais son rapport => forcer la visualisation du rapport à la connexion, et quelque petits trucs du genre)
De cette façon quand un joueur veut son rapport t'as limite juste un include à faire (+ une vérif condition nettoyage, donc du nombre de ligne du rapport/ou date). Ca n'est intéressant que si ta vérif de condition de nettoyage est vraiment très light; sinon autant utiliser les outils fourni par la bdd.
normalement tes actions sont toutes typées
1) x fait interaction y avec z (mais les action sur soi-même répondent à ce format)
2) après il peut y avoir des "annonce générique", ou événement aléatoire
3)... je sais pas si y a vraiment d'autre format
donc tu crée des phrases modèles:
Tu attaques %s et le blesses / Tu attaques %s, mais celui-ci bloque ton attaque
etc...
au lieu de faire "la construction" des ligne du rapport durant l'action; tu stock juste l'id du modèle et des perso. (mais par contre ça te coutera plus cher vu que tu dois afficher le rapport; vu qu'à chaque fois faudra "l'écrire"... enfin a priori vu que tu rame déjà^^ c'est peut-être pas ce qui te conviendra).
Autre alternative: un fichier de log par joueur. Tu décide de conserver par défaut juste les XX dernière événement (tu peux aussi le faire avec les dates si tu y tiens); et tu fais le controle à l'affichage du rapport pour savoir si tu dois nettoyer ou pas.
(avantage, tu stocke donc toute les interactions, même en cas d'abscence prolongées, etc... celles-ci seront pas nettoyée par une routine qui vire tout au bout de X jours et tu assure que le joueur y aura donc accès au moins une fois. Faut juste assurer qu'un rapport ne grossira pas de manière infinie: genre pas qu'un gars ne lise jamais son rapport => forcer la visualisation du rapport à la connexion, et quelque petits trucs du genre)
De cette façon quand un joueur veut son rapport t'as limite juste un include à faire (+ une vérif condition nettoyage, donc du nombre de ligne du rapport/ou date). Ca n'est intéressant que si ta vérif de condition de nettoyage est vraiment très light; sinon autant utiliser les outils fourni par la bdd.