11-04-2010, 06:19 PM
Tu peux très bien utiliser la base de données pour cette problématique. Si tu utilises seulement des fichiers, tu auras des doublons. Chaque action se retrouvera dans deux fichiers : celui du joueur A et celui du joueur B. Avec ce modèle tu auras, je pense, 1 fichier par joueur, à terme ça peut faire beaucoup.
En passant par ta BDD tu auras une table, avec un seul enregistrement pour chaque action. De plus, dans ce cas de figure les requêtes SQL seront très légères. Tu auras deux clés étrangères, player1 et player2, donc deux jointures, faites sur la clé primaire de la table des joueurs. Ce sera donc rapide, que tu aies 10, 100, 1000, 10000 ou 100000 joueurs. Tu pourras en plus tirer des stats sur les actions les plus populaires, les moins utilisées, purger la table de façon à ne conserver que les xx actions de chaque joueur etc...
Il ne faut pas oublier que les bases de données sont très performantes, qu'elles sont là pour ça. Après, rien ne t'empêche d'utiliser la BDD et de mettre une couche de cache par dessus. Mais dans ce cas je ne pense pas que ça apporte grand chose. Cacher des requêtes SQL est utile pour celles qui parcourent un très grand nombre d'enregistrements, qui mettent du temps à s'exécuter.
En passant par ta BDD tu auras une table, avec un seul enregistrement pour chaque action. De plus, dans ce cas de figure les requêtes SQL seront très légères. Tu auras deux clés étrangères, player1 et player2, donc deux jointures, faites sur la clé primaire de la table des joueurs. Ce sera donc rapide, que tu aies 10, 100, 1000, 10000 ou 100000 joueurs. Tu pourras en plus tirer des stats sur les actions les plus populaires, les moins utilisées, purger la table de façon à ne conserver que les xx actions de chaque joueur etc...
Il ne faut pas oublier que les bases de données sont très performantes, qu'elles sont là pour ça. Après, rien ne t'empêche d'utiliser la BDD et de mettre une couche de cache par dessus. Mais dans ce cas je ne pense pas que ça apporte grand chose. Cacher des requêtes SQL est utile pour celles qui parcourent un très grand nombre d'enregistrements, qui mettent du temps à s'exécuter.