Validazione per ogni record nel file csv

0

Creo la pagina per importare i record in modo che gli utenti possano importare i record utilizzando un file CSV.

Sto già usando Sanitization per rimuovere i caratteri imprevisti per il campo specifico del record, Devo convalidare ogni record nel file csv prima di inserirlo nel Database, quindi visualizzare gli errori all'utente o semplicemente usando la sanitizzazione solo perché l'utente seguirà il formattare se il formato fallisce rimuovilo usando il metodo di sanitizzazione?

    
posta Joko Wandiro 30.08.2016 - 10:48
fonte

2 risposte

1

Se hai eseguito un caricamento parziale dei dati a causa di errori nei dati, potrebbero esserci problemi a inviare nuovamente i dati, a meno che non fossero chiavi per impedire il caricamento degli stessi dati.

Sarei propenso a analizzare prima i dati e offrire all'utente un'opzione se vogliono caricare un sottoinsieme pulito dei dati o correggere i vari errori e riprovare. Se vuoi fornire una sorta di procedura guidata qui dipende in gran parte da te e dipende dal tipo di dati che stai elaborando. Avresti bisogno di risorse considerevoli per provare e correggere automaticamente cose come name & indirizzo ecc.

La modifica dei dati durante il caricamento può essere controversa a meno che non vi sia una definizione di file comprensibile. Non si specifica il tipo di dati che si sta caricando, ma prendendo un esempio semplice come il sesso - questo può produrre un numero sorprendente di valori: M (maschio), F (femmina), U (sconosciuto), N (non fornito ), D (derivato), vuoto ecc.

    
risposta data 30.08.2016 - 11:25
fonte
1

Do I have to validate each record in csv file before insert it into Database ...

Sì. Assolutamente. Nessuna domanda.

... then display the errors to user or just using sanitization only cause user will follow the format if format fail just remove it using sanitization method ?

non chiara.

Quando si prendono i dati dagli utenti tramite uno schermo, si convalidano i dati prima di salvarli. Solo perché i [stessi?] Dati provengono da un file , devi ancora convalidarlo, in base alle stesse regole .

Il problema è come dire all'Utente tutto ciò che "va storto" nel processo.

potresti trattare l'intero file come una transazione e rifiutare il lotto intero se qualcosa va storto con qualsiasi record. Quindi devi indirizzare l'utente al campo errante [s] nel record errante [s] in modo che possano correggerli / loro. Potrebbe essere sotto forma di rapporto o, forse, di schermo; se usi quest'ultimo, allora potresti anche avere la possibilità di assistere l'utente nel correggere il problema. YMMV.

In alternativa, puoi trattare ogni record come "atomico"; se il file contiene 100 righe e solo la riga # 5 è un problema, puoi caricare tutti gli altri e solo "Invia indietro l'utente" riga # 5, possibilmente in un file separato, "rifiutato".

Se il tuo file di input è "compatibile" con il programma di fogli di lavoro preferito dagli utenti (cioè detto programma non fa cose "utili" ma "stupide" ai tuoi dati come, ad esempio, eliminando tutti gli zeri principali [significativi] i tuoi campi "numerici") allora potresti avere l'opzione di "restituire" gli errori come colonne aggiuntive nel file CSV. Ciò li rende più facili da trovare e, quindi, da correggere. Di nuovo, hai restituito loro l'intero file con le righe accettate opportunamente "contrassegnate" o solo le righe rifiutate?

Forse potrebbe essere utile avere una discussione con gli utenti per vedere quali potrebbero preferire (e, in effetti, sono in grado di gestire).

    
risposta data 30.08.2016 - 12:56
fonte