Gestion des modifications en SimpleXML
Résolu/Fermé
Evi
-
5 févr. 2014 à 07:44
robinam Messages postés 25 Date d'inscription vendredi 31 janvier 2014 Statut Membre Dernière intervention 6 février 2014 - 6 févr. 2014 à 23:30
robinam Messages postés 25 Date d'inscription vendredi 31 janvier 2014 Statut Membre Dernière intervention 6 février 2014 - 6 févr. 2014 à 23:30
A voir également:
- Gestion des modifications en SimpleXML
- Suivi des modifications word - Guide
- Logiciel gestion photo gratuit - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion cave à vin gratuit excel - Télécharger - Cuisine & Gastronomie
- Gestion autorisation application android - Guide
1 réponse
robinam
Messages postés
25
Date d'inscription
vendredi 31 janvier 2014
Statut
Membre
Dernière intervention
6 février 2014
2
5 févr. 2014 à 22:59
5 févr. 2014 à 22:59
Bonjour,
L'avantage de la base de donnée, c'est que les accès sont sérialisés.
Si tu as 100 personne qui valide ton formulaire, tu peux faire 100 insert dans ta base de données sans te poser de question.
après, la limite est plus au niveau de ton serveur, 100 personne c'est très peu, par contre 100 000, là tu peux avoir des problèmes :)
Avec ton fichier XML, c'est différent, tu va devoir gérer toi même les accès concurrent, c'est à dire , comment gérer qu'n utilisateur A modifie le fichier en même temps qu'un utilisateur B.
Tu te complique donc la tâche car dans ce cas, tu peux effectivement rencontrer des pertes de données si tu ne gère pas bien les accès en lecture et écriture de ton fichier XML.
Je ne dit pas que c'est impossible, mais si le fait de ne pas utiliser de BDD c'est juste parce que tu ne maîtrise pas cette partie, je pense que tu gagnera beaucoup de temps en apprenant à utiliser une base mysql ou postgreSQL, plutôt qu'à te casser la tête avec les fichier XML.
L'avantage de la base de donnée, c'est que les accès sont sérialisés.
Si tu as 100 personne qui valide ton formulaire, tu peux faire 100 insert dans ta base de données sans te poser de question.
après, la limite est plus au niveau de ton serveur, 100 personne c'est très peu, par contre 100 000, là tu peux avoir des problèmes :)
Avec ton fichier XML, c'est différent, tu va devoir gérer toi même les accès concurrent, c'est à dire , comment gérer qu'n utilisateur A modifie le fichier en même temps qu'un utilisateur B.
Tu te complique donc la tâche car dans ce cas, tu peux effectivement rencontrer des pertes de données si tu ne gère pas bien les accès en lecture et écriture de ton fichier XML.
Je ne dit pas que c'est impossible, mais si le fait de ne pas utiliser de BDD c'est juste parce que tu ne maîtrise pas cette partie, je pense que tu gagnera beaucoup de temps en apprenant à utiliser une base mysql ou postgreSQL, plutôt qu'à te casser la tête avec les fichier XML.
6 févr. 2014 à 20:13
Cette mini application ne sera partagée qu'entre quelques amis, et n'a pas pour but de durer, la question était surtout théorique, et pour les prochains travaux que je réaliserais. Donc pour cette fois je vais garder ce système.
Mais la prochaine fois ou j'aurais besoin de ce genre de système, j'utiliserai un base de donnée :) Heureusement, le SQL je connais ( Bac STG ! ). Pourvu que je m'en souvienne....
6 févr. 2014 à 23:30
Dans ce cas, il faudrait gérer manuellement un lock du fichier. Au niveau algorithmique cela revient à mettre tes requêtes en pause, si une modification est en cours
- je consulte le fichier
- Si lock présent, j'attend x seconde, et je tente à nouveau
- Sinon, ouvrir le fichier en lecture et/ou ecriture
- Je réalise mes modifications
- je retire le lock pour laisser la place aux autres utilisateurs
Par contre effectivement, il faudra faire attention à bien gérer ta file de requête pour ne pas perdre de données (au niveau PHP, je n'ai jamais tenté).
Après tu as d'autre solution possibles, par exemple en utilisant plusieurs fichiers de copie (chaque utilisateur dispose d'une copie du fichier dans lequel il fait les modification, et quand les modifications sont terminé, tu fait un merge de ton fichier avec le reste)
tu as moins de risque de perte de donnée (tout le monde peut créer en même temps. Reste à voir comment merger facilement tes fichiers
après tout dépend également de la disponibilité de tes modification; est- ce qu'une modification réalisé à un instant T doit être répercutée dans les 10 secondes ou dans les 10 minutes voir dans les 10 prochaines heures.