Sto cercando di sviluppare un piccolo strumento di reporting (con backlite sqlite). Posso descrivere al meglio questo strumento come un libro mastro "transazione". Quello che sto cercando di fare è tenere traccia delle "transazioni" dall'estrazione di dati settimanali:
- "nuovo" (o aggiungi) - la risorsa è nuova per la mia app poiché la mia app potrebbe non avere già tracciato questa risorsa in quanto non è stata vista tramite estratti.
- "aggiornamento" (o hit) - c'è un uso recente di tale risorsa, il periodo di conservazione degli aggiornamenti di un'altra settimana.
- "cancella" (o rilascia) - questo articolo non ha visto l'uso dall'ultima segnalazione (facoltativo, ma sarebbe bello avere per il grafico le modifiche da settimana a settimana della richiesta di risorse).
Tutto quello che ho è un estratto di dati settimanale (file flat delimitato da pipe) proveniente da un sistema di archiviazione / gestione dei record legacy di cui non ho il controllo.
Ogni linea può essere distillata in base a questo:
resource_id | resource info | customer_id | customer_info
Dati campione:
10| Title X | 1 | Bob
11| Another title | 1 | Bob
10| Title X | 2 | Alice
L'obiettivo è rendere semplice la segnalazione di risorse che non sono state utilizzate per X-mesi (in base all'ultimo hit). C'è un periodo di conservazione in cui le risorse vengono mantenute per facilità di accesso, se sono popolari. Una risorsa che non ha visto l'uso per 18 mesi è contrassegnata per l'archiviazione a lungo termine altrove.
Questo deve essere un problema comune. Ti chiedi se esiste un algoritmo per scopi generici per determinare cosa c'è di nuovo / uguale / rimosso tra i set di dati (db vs. ultimo estratto)?