FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Busqueda Similar??
Hola a todos.
Estoy haciendo un ABM Cliente con PostgreSQL 8.2, sencilo verdad, pero lo que quiero hacer es que no me permita cargar clientes con nombres iguales (tambien facil) o parecidos (ahi el problema). Por ejemplo, si cargo Código:
"Manuel Gonzalez Espinosa" Código:
"Manuel Gonzalez Espinoza" (con z al final) Código:
"Gonzalez Espinosa, Manuel" Intente hacer con un like, pero, me aparecen todos los que se llaman Manuel, sim importar el apellido, o no me encuntra las diferencias como la s por la z o vocales con acentos. Si hay forma de resolverlo, me gustaria q me ayudaran. Saludos Farrop |
#2
|
||||
|
||||
Cita:
Un tema bastante similar fue tratado en los foros. No recuerdo bien como se ha llegado a la solución, no te sabría decir si emplear LIKE es una buena opción. Yo recomendaría que no sea el motor de base de datos quien asuma esta responsabilidad. Déjala que la asuma tu aplicación. Parte de tu problema/solución se puede conseguir con esto. Saludos, |
#3
|
|||
|
|||
Hola
No crees que es mas facil hacer la validacion por una llave primaria o unica, como un codigo ? Por ejemplo la identificacion personal En Colombia usamos el documento que es la cedula de ciudadania, unica para cada uno de nosotros, en otros lugares el el numero del seguro social, o la licencia de conduccion Si se adiciona primero este codigo sera mas facil controlar que no esten duplicados |
#4
|
||||
|
||||
hecospina, tienes razón. Si se emplea el DNI o algún codigo como ese que es único basta y sobra...
Pero quien sabe... puede que por algún motivo no se le permita tener registrado el DNI, NIF, etc. En este caso se podría crear una clave para persona con algún algoritmo Hash. Saludos, |
#5
|
||||
|
||||
Que tal,
Miral lo yo hago para cuando quiero hacer esto o algo parecido es colocar en el edit del nombre una funcionalidad que lo que hace es filtrando los nombres de los clientes a medida que se va tecleando, de esta manera el usario visualmente se va dando cuenta si existe un(os) nombre(s) parecido. Coloco hasta abajo un Grid (en realidad manejo el cxGrid de devExpress) y ahi voy "recortando" la informacion a medida que se teclea. Ventaja de este metodo, es que de manera "intuitiva" el usuario se da cuenta. Desventaja, es que hay que cargar con todos los registros de la tabla en este caso de clientes, pero normalmente (al menos en mis aplicaciones) los clientes no pasan de por lo regular de unos 20,000 lo que con firebird y devExpress no representa mayor problema. Saludos |
#6
|
|||
|
|||
Busqueda Similar
Hola otra vez.
Como clave principal uso un ID numerico, podria usar algo como el DNI, aca es el RUC, pero hay varias personas que utilizan dos o mas veces su RUC (para hacer compras) para tener detallado en que concepto lo usan, pero eso no va al caso. El tema es que cuando viene un cliente no ocacional, el usuario busca si esta cargado, y no revisa con atencion y como no encontro a simple vista, ya carga otro cliente, produciendose asi muchos clientes repetidos,pero con solo una letra distinta, teniendo asi: Código:
Manuel Gonzalez Espinoza Manuel Gonzalez Espinosa Gonzalez Espinosa, Manuel Manuel González Espinoza Me gusta mucho el metodo de "Delphius", lo voy a probar, y tambien el de "juanelo", y veo cual es mas efectivo. ¿¿Lo que aun me gustaria saber es si hay forma de hacer la Distancia entre palabras (Algoritmo de Levenshtein) mediante SQL solamamente?? o algo similar Muchas gracias por su ayuda. Última edición por farrop fecha: 01-02-2008 a las 19:09:04. Razón: Correcion Gramatical |
#7
|
||||
|
||||
Cita:
Trabajé con una B.D. de Oracle con más de 100,000 personas registradas, elaboré una búsqueda por aproximación con el Algoritmo de Levenshtein. Al principio resultó muy lento, pero fui refinando la búsqueda. Construí tres tablas auxiliares para el nombre y los apellidos. Estas tablas funcionan como índices sobre los cuáles hago la búsqueda. Finalmente el resultado fue aceptable, la búsqueda en el peor de los casos tarda alrededor de 5 segundos. No descartes la idea del algoritmo de Levenshtein, pero advierto que es necesario algo de trabajo para obtener buenos resultados. Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
funcion similar a PoS ? | waly2k1 | Varios | 8 | 27-02-2008 23:23:32 |
1stClass o similar | vroa74 | Varios | 0 | 20-09-2007 22:49:56 |
similar a dbgrid en php | jgutti | PHP | 5 | 10-05-2007 20:46:45 |
Php + grid o similar | jgutti | PHP | 2 | 25-05-2006 01:12:52 |
StringGrid o Similar | jfontane | Varios | 4 | 24-06-2003 09:46:02 |
|