Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Encontrar nombres aunque esten mal escritos (https://www.clubdelphi.com/foros/showthread.php?t=32419)

PedroAlfonso 05-06-2006 23:03:02

Encontrar nombres aunque esten mal escritos
 
Estimados jóvenes y jovencitas:

Tengo una aplicación que tiene ya 70,000 registros con nombres de clientes
NOMBRES VARCHAR(40)
PATERNO VARCHAR(40)
MATERNO VARCHAR(40)

Estos son clientes de una tienda donde cada vez que vienen a comprar se les localiza por su nombre.
El problema está que a veces el usuario se equivoca en la ortografía de algún campo y cuando vuelve el cliente se duplica la base de datos con el mismo cliente escrito dos veces. ejemplos LOPEZ,LOPES BENAVIDES,BENABIDES etc.

Para hacer la busqueda utilizo un query

Código SQL [-]
SELECT * FROM CLIENTES 
WHERE PATERNO CONTAINING :v0 AND MATERNO CONTAINING:v1 AND NOMBRES CONTAINING :v2
¿Alguna idea para que el query sea más inteligente y evite errores?

vtdeleon 05-06-2006 23:08:48

Los clientes tiene un documento de Identidad?

Creo que esa es la mejor forma de no repertir clientes, buscandolo por su ID.

lpmlpm 05-06-2006 23:24:09

Puedes usar la función SoundEx que te devolvería el mismo valor para cadenas que suenen similarmente

Saludos

PedroAlfonso 05-06-2006 23:58:21

Cita:

Empezado por vtdeleon
Los clientes tiene un documento de Identidad?

Creo que esa es la mejor forma de no repertir clientes, buscandolo por su ID.

Te escribo desde México, si tenemos documento de identidad (Credencial de elector) pero no todo mundo lo porta. Por eso no puedo pedirlo como requisito.

Casimiro Notevi 06-06-2006 00:19:21

pues necesitas algo que identifique a cada persona, por ejemplo su huella digital, con un simple lector lo puedes solucionar, así si no llevan su documento de identidad, casi seguro que traen el dedo :D

Bromas aparte, es totalmente necesario que exista un código, huella, etc que sea totalmente segura la identificación de las distintas personas.

Además de qué sucede si hay dos personas, o más, que se llaman igual?

dec 06-06-2006 01:12:56

Hola,

Cita:

Empezado por Casimiro
Además de qué sucede si hay dos personas, o más, que se llaman igual?

Y haberlas haylas... :)

vtdeleon 06-06-2006 02:33:53

Saludos
Cita:

Empezado por dec
Y haberlas haylas... :)

Eeeeh??:confused:

AGAG4 06-06-2006 02:43:18

Checa Esto
 
Yo tuve un problema similar al tuyo, pero lo solucione gracias al RFC del cliente, aqui en méxico cada Contribuyente(Paga Impuestos) se le asigna una serie de numeros y letras(código único), con esto resuelves tu problema cada vez de que den de alta a un cliente nuevo, otra cosa el uso del containing te puede ayudar demasiado es una poderosa herramienta que encuentra una aguja en un pajar con esta también puedes evitar ese tipo de problemas....

Saludos....

Lepe 06-06-2006 10:32:41

Lo de containing lo he usado de forma parecida. Cuando se va a dar de alta un registro y el usuario escribe el nombre del cliente, en un grid (o con una rutina de Autocompleta) se busca en la base de datos los nombres que sean parecidos, así el usuario vé los nombres que ya estan dados de alta y no lo duplica.

Si comete un fallo en la primera letra del nombre no hay solución, lo duplilcará :(
No creo que se deba incluir Inteligencia Artificial al programa para este tipo de cosas... o ¿si? :D

Saludos

PedroAlfonso 07-06-2006 23:28:50

Cita:

Empezado por Casimiro Notevi
pues necesitas algo que identifique a cada persona, por ejemplo su huella digital, con un simple lector lo puedes solucionar, así si no llevan su documento de identidad, casi seguro que traen el dedo :D

Gracias por los comentarios de todos, la huella ya la manejo. Pero sigo con el problema que como son demasiados clientes para hacer una busqueda con la huella 1:n tengo que filtrar la cantidad de registros para comparar la huella incluyendo en el query el apellido paterno; de lo contrario se tarda demasiado.
Pero es ahi donde si los inteligentisimos usuarios ponen mal una letra en la busqueda no se encuentra el cliente.

Por ahi alguien comentó que hay personas con el mismo nombre, también guardo la dirección (para fines estadísticos y de mercadotecnia) y asi con la dirección sabemos si es la misma persona.

El RFC es bueno, pero no utilicé ese dato porque los clientes son de clase baja en su mayoría y en el analisis los usuarios me comentaron que sería complicado manejar el RFC (tal vez hubiera sido una opción bastante viable pero nimodo). Si asigno un numero (folio) a cada cliente.

Voy a probar el SOUNDEX a ver que tal.


La franja horaria es GMT +2. Ahora son las 07:52:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi