I have a table contact which store all contact information of a person name, address, phone number. The contact records will be entered by some employees.
I want to know that should I check for duplication when a contact record is saved?
Definisci "unico".
Ogni "Contatto" [record] dovrebbe avere un identificatore univoco che. IMO, non può essere una delle cose che menzioni (possono cambiare tutte nel tempo). Questo identificatore dovrebbe essere generato dall'applicazione, probabilmente privo di significato, e non dovrebbe cambiare dal momento in cui il record viene creato al momento in cui viene definitivamente distrutto (sistemi come questo sono improbabili fisicamente cancella i record molto spesso, mantenendo i record a lungo termine delle persone è un requisito legale molto comune in questi giorni).
Quindi sì, i tuoi record dovrebbero essere identificati in modo univoco, in modo da avere un solo record per Persona (senza questo vincolo, la tua tabella sarà di scarsa utilità pratica).
Dato questo, la tua domanda diventa quindi quella di scoprire se hai già visto questa particolare "Persona" - questo è un problema di De-duplicazione e, ancora, è molto comune a sistemi come questo.
Un modo per affrontarlo potrebbe essere quello di fornire una funzione di "Ricerca" che le persone possono utilizzare per localizzare una Persona prima di creare un nuovo record per loro.
In alternativa, dovrai eseguire numerose query sul database alla ricerca di elementi di dati "simili" a quelli immessi; gli indirizzi sono scarsamente standardizzati nel modo in cui vengono inseriti e quindi saranno problematici da abbinare. I numeri di telefono sono più semplici fino a quando hai un formato standardizzato per la memorizzazione.
Se trovi le tue query contenenti molte clausole "mi piace", specialmente quelle con i caratteri jolly che portano , probabilmente stai andando nella direzione generale delle scarse prestazioni delle applicazioni.
E, anche dopo tutto questo, ricorda che probabilmente dovrai creare il processo "mazza" che "unisce" due record di Contatto - e ogni altro record in ogni altra tabella che li riguarda - in uno.