mise a jour suite a comparaison entre 2 tables

Invité
Invité n'ayant pas de compte PHPfrance

03 oct. 2008, 11:42

Bonjour,
J'ai une base (Base1) sur un serveur qui est utilisé que en interne, sur un autre serveur j'ai une autre base, qui elle pourra être accedé de l'extérieur(Base 2). J'aimerai que suite à une intervention la mise a jour de de la base 2 se fasse par rapport à la base 1, en faite c'est une table qui devrait être comparé avec une autre et que les champs modifié soit modifié, les occurence d'ajouté soit ajouté, mais que les site de supprimé ne soit pas supprimé mais que ça rajouté au champ fermé oui.
Auriez vous une idée de comment je pourrais procédé ? je ne sais pas par ou commencé.
Merci d'avance

ViPHP
fab
ViPHP | 2657 Messages

03 oct. 2008, 14:59

pourquoi lors de la mise à jour de la base 2 ne pas faire une mise à jour de la base 1 ?
Sinon si tu disposes d'un serveur unix tu peux utiliser crontab pour executer un script a des heures planifiées comme par exemple toutes les heures. Dans ce cas tu récuperes les mises à jour qu'il y a eu depuis une heure sur la base 2 et tu les intégrent dans la base 1
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Invité
Invité n'ayant pas de compte PHPfrance

03 oct. 2008, 15:11

oui mais comment est-ce que je fais pour savoir les mise a jour qui ont été faite. Comment comparé les informations? De plus il faudra que les mise a jour soit mise sur la base 2 que tous les mois et pas journalierement ou hebdo.

merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 oct. 2008, 15:25

Doit probablement y avoir des outils de synchronisation qui existent, genre sync....

Sinon, tu peux parcourir ta base1 et pour chaque enregistrement faire un "insert or update" dans ta base2 (c'est peut être plus embêtant pour détecter les suppressions) ... ou bien stocker dans un fichier toutes les requêtes que tu envois dans ta base1 et rejouer ce fichier sur la base2 pour la mettre à jour (mais ça interdit toute modif en dehors de ton outil)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
fab
ViPHP | 2657 Messages

03 oct. 2008, 16:00

Tout les mois c'est fesable avec crontab :)
Mais la solution de Ryle de stocker dans un fichier les requetes semblent intéressante sauf si tu as des millions de requetes par jour bien sur..
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Mammouth du PHP | 965 Messages

03 oct. 2008, 17:02

Pour avoir eut à faire un échange entre 2 base de données j'ai utiliser la méthode direct de mise à jour des modifications sur la deuxième base, pour avoir tout le temps les 2 bases identiques enfin avec les données dont j'avais besoin pour la 2ème.

Sinon je pense que les autres solutions peuvent mener a des incohérences entre les base, j'ai éviter le cron pour ça justement.

Par contre c'était dans une application ou il n'y avait beaucoup de requêtes par jour.