J'essaie de développer un petit outil de reporting (avec backend sqlite). Je peux le mieux décrire cet outil comme un grand livre de "transactions". Ce que j'essaie de faire, c'est de garder une trace des «transactions» de l'extrait de données hebdomadaire:
- "nouveau" (ou ajouter) - la ressource est nouvelle pour mon application car mon application n'a peut-être pas suivi cette ressource auparavant car elle n'a pas été vue via des extraits.
- "mise à jour" (ou hit) - il y a eu une utilisation récente de cette ressource, mise à jour de la période de rétention d'une semaine.
- "supprimer" (ou supprimer) - cet élément n'a vu aucune utilité depuis le dernier rapport (facultatif, mais il serait bien d'avoir pour représenter graphiquement les changements d'une semaine à l'autre de la demande de ressources).
Tout ce que j'ai, c'est un extrait de données hebdomadaire (fichier plat délimité par des tuyaux) provenant d'un ancien système d'archivage / gestion des enregistrements sur lequel je n'ai aucun contrôle.
Chaque ligne peut être distillée à la base:
resource_id | resource info | customer_id | customer_info
Exemples de données:
10| Title X | 1 | Bob
11| Another title | 1 | Bob
10| Title X | 2 | Alice
L'objectif est de faciliter la génération de rapports sur les ressources qui n'ont pas été utilisées pendant X mois (en fonction du dernier hit). Il y a une période de rétention où les ressources sont conservées pour en faciliter l'accès si elles sont populaires. Une ressource qui n'a pas été utilisée depuis 18 mois est marquée pour un archivage à long terme ailleurs.
Ce doit être un problème courant. Vous vous demandez s'il existe un algorithme à usage général pour déterminer ce qui est nouveau / identique / supprimé entre les ensembles de données (db vs dernier extrait)?