bonsoir tout le monde!
je dois faire une comparaison entre 2 bases de données pour un petit "logiciel" de synchronisation.
Donc je me connecte sur le "serveur", je recupère le contenu de la base de données distante, et pour chaque ligne récupérée, je vérifie si sur la base locale si ca existe ou pas
la 2 solutions:
si ca existe pas : je fais un INSERT
si ca existe je verifie si il y a des modifications et je met a jour en conséquence.
mon problème est plus lié sur mon 2ème cas. En effet, l’idéal serait de se baser sur un certain nombre de critère qui serait un gage suffisant pour dire si l enregistrement est celui que l’on doit comparer entre les 2 bases ou pas (certains champs sont beaucoup approprié a des modification que d’autres)
Ainsi, dans ma logique si par exemple si par exemple, 5 des 10 champs sont identiques entre 2 enregistrements, on peut effectivement faire le UPDATE des modifications car l’enregistrement en question est bien le bon dans les 2 bases
Au dela de 5 champs non identique, on peut considérer que l’enregistrement n’est pas le même; et donc soit il faut aller chercher un autre enregistrement, soit il n’existe pas et donc il faudra un INSERT.
Maintenant mon problème est vraiment lié a cette comparaison.
Comment peut on simuler ce système de critères de manière "relativement" simple?
il y aurait la méthode brute qui me ferait récupérer les éléments de base de données distante, je les mets en varaible, je prends les éléments de la base de données locale, que je mets aussi en varaible et je compare le tout
mais n y a t il pas une solution possible directement dans la requète?
la de toute façon j’ai deja mis en variable les resultats de la base de données distance. Maintenant est il possible d’utiliser ces resultats en les utilisant dans la requete sur la base de données locale et de me sortir un nombre m’indiquant le nombre de similitude exacte?(ce qui m’évitera de refaire la requete sur la base de données locale et de tout ressortir en variable et de comparer ce magma!)
j espère que j ai été assez clair!
merci d’avance!
Florent