Assez souvent dans mon travail l'idée de synchronisation des données bidirectionnelle entre les systèmes de base de données surgit. L'exemple classique est deux systèmes CRM légèrement différents (disons, Raiser's Edge et Salesforce) et la nécessité d'avoir une synchronisation bidirectionnelle des données de contact entre eux.
Outre les considérations relatives aux API, en supposant que vous ayez une clé partagée pour la synchronisation et en pensant uniquement à l'algorithme/au modèle à utiliser, cette tâche est souvent sous-estimée par les non-techniciens.
Par exemple, vous devez faire attention à:
Personnellement, je peux penser à des moyens de résoudre tout cela, mais je me demande s'il y a des modèles, de la littérature ou des meilleures pratiques bien connus auxquels je pourrais me référer.
Il existe de nombreuses théories sur la synchronisation des bases de données de sites distants. Commencez d'abord par INSERT. la manipulation de celui-ci est facile - car vous pouvez créer un ID unique pour chaque site (par exemple, une initiale du nom du site + ID (numéro): site_a_177 vs site_b_53)
L'insertion ne doit donc pas créer de conflits. le problème est la mise à jour. Je ne crois pas qu'il existe une méthode 100% à l'épreuve des pannes, mais vous pouvez démarrer une mise à jour en "verrouillant" l'enregistrement dans la base de données distante, et seulement après avoir obtenu le handle - continuer la mise à jour et terminer en synchronisant la mise à jour puis relâchez le verrou.