Le risque c'est pas vraiment le type de fichier, c'est l'accès concurrent. Que ce soit du XML, du JSON ou du YAML c'est toujours pareil.
Qu'est ce qui se passe si deux utilisateurs ont besoin d'accèder en écriture en même temps au fichier ?
1. Cas pessimiste : le fichier est déjà ouvert, donc le deuxième accès est refusé parce que le fopen() ne fonctionne pas.
2. Cas optimiste : les accès se font les uns à la suite des autres, mais par contre ça veut dire que le deuxième utilisateur va attendre que le premier ait fini. Donc ça rame.
Je ne sais pas ce qui se passe en pratique mais ça me paraît dangereux.
Dans le cas d'une BDD ce genre de problème n'existe pas. Au pire il y a une queue de "query" à executer qui s'empile et qui peut ramer, mais c'est étudié pour.
C'est possible d'utiliser des fichiers à la place d'une BDD. Il y a au moins PMwiki qui fait ça pour stocker ses articles. Mais les données sont moins complexes, c'est que du texte, et il y a moins d'accès que pour un jeu. On charge un article et voilà. On a pas besoin de faire 10 requêtes par seconde pour résoudre une action.
A mon avis YAML ou autre c'est très bien pour des donnés quasi statiques, par exemple organisé les règles. Il y a peu de risques d'accès concurrents, ça varie lentement. Ou pour sortir des rapports d'erreurs ou des statistiques.
Qu'est ce qui se passe si deux utilisateurs ont besoin d'accèder en écriture en même temps au fichier ?
1. Cas pessimiste : le fichier est déjà ouvert, donc le deuxième accès est refusé parce que le fopen() ne fonctionne pas.
2. Cas optimiste : les accès se font les uns à la suite des autres, mais par contre ça veut dire que le deuxième utilisateur va attendre que le premier ait fini. Donc ça rame.
Je ne sais pas ce qui se passe en pratique mais ça me paraît dangereux.
Dans le cas d'une BDD ce genre de problème n'existe pas. Au pire il y a une queue de "query" à executer qui s'empile et qui peut ramer, mais c'est étudié pour.
C'est possible d'utiliser des fichiers à la place d'une BDD. Il y a au moins PMwiki qui fait ça pour stocker ses articles. Mais les données sont moins complexes, c'est que du texte, et il y a moins d'accès que pour un jeu. On charge un article et voilà. On a pas besoin de faire 10 requêtes par seconde pour résoudre une action.
A mon avis YAML ou autre c'est très bien pour des donnés quasi statiques, par exemple organisé les règles. Il y a peu de risques d'accès concurrents, ça varie lentement. Ou pour sortir des rapports d'erreurs ou des statistiques.