J'ai une source de données qui fournit une liste d'objets et leurs propriétés (un fichier CSV, mais cela n'a pas d'importance). Chaque fois que mon programme s'exécute, il doit extraire une nouvelle copie de la liste des objets, la comparer à la liste des objets (et leurs propriétés) stockés dans la base de données et mettre à jour la base de données si nécessaire.Algorithme de mise à jour d'une liste à partir d'une liste
Il est facile de traiter de nouveaux objets: la source de données attribue à chaque objet un numéro d'identification séquentiel, vérifie le numéro d'ID supérieur dans la nouvelle information par rapport à la base de données et vous avez terminé. Je cherche des suggestions pour les autres cas - lorsque certaines propriétés d'un objet ont changé, ou quand un objet a été supprimé.
Une solution naïve serait de tirer tous les objets de la base de données et obtenir le complément de l'intersection des deux ensembles (anciens et nouveaux) et ensuite examiner ces résultats, mais cela semble ne pas être très efficace si les ensembles deviennent grands. Des idées?
Calculer et stocker un hachage pour chaque objet? – FogleBird