Sto cercando di sviluppare un piccolo strumento di reportistica (con backend sqlite). Posso descrivere al meglio questo strumento come un libro mastro di "transazione". Quello che sto cercando di fare è tenere traccia delle "transazioni" dall'estratto settimanale dei dati:
- "new" (o aggiungi): la risorsa è nuova per la mia app poiché la mia app potrebbe non aver monitorato questa risorsa in precedenza poiché non è stata vista tramite estratti.
- "aggiornamento" (o hit) - c'è un uso recente di quella risorsa, aggiorna il periodo di conservazione di un'altra settimana.
- "elimina" (o rilascia): questo elemento non è stato utilizzato dall'ultimo rapporto (facoltativo, ma sarebbe utile avere un grafico delle variazioni settimanali della domanda di risorse).
Tutto quello che ho è un estratto settimanale di dati (file flat delimitato da pipe) proveniente da un sistema di archiviazione / gestione dei record legacy su cui non ho alcun controllo.
Ogni riga può essere distillata sostanzialmente per questo:
resource_id | resource info | customer_id | customer_info
Dati di esempio:
10| Title X | 1 | Bob
11| Another title | 1 | Bob
10| Title X | 2 | Alice
L'obiettivo è semplificare 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 sono conservate per facilitare l'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 generico per determinare cosa c'è di nuovo / uguale / rimosso tra set di dati (db vs. ultimo estratto)?