Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

El Reto Del Usuario Ceporro

El Reto Del Usuario Ceporro
Artículo
Responder citando    Descargar mensaje  
Mensaje El Reto Del Usuario Ceporro 
 
Póngase una base de datos (lista, tabla, colección, array...) de lo que quieras, digamos personas.
Póngase una clave autonumérica y automática. Guay.
Póngase un puñado de usuarios perezosos, o desinformados, o tontos directamente.
En lugar de pulsar el botón que tiene una lupa y la leyenda "Buscar persona", se dedican a teclear los datos en un alta nueva una y otra vez.
Resultado: un montón de registros duplicados que no lo son. Es decir, la clave es distinta, el contenido no.
Peor aún: el contenido es duplicado sin serlo. es decir, tenemos registro como:

id    nombre                   localidad
1     Pepe Luis Pérez       Elche de la Sierra
2     Jose Luis Pérez        Elche de la S.
3     J. Luis Perez            Elche Sierra
 etc. etc.

¿Qué método de buscar duplicados (mejor dicho posibles duplicados) se os ocurre?

A mí me viene uno que a lo mejor funciona o a lo peor no, pero no doy pistas...
Venga machotes. No hace falta código, si no os apetece, sólo ideas.



 
última edición por shordi el Martes, 27 Enero 2015, 17:54; editado 1 vez 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Martes, 27 Enero 2015, 17:53 ]
 


El Reto Del Usuario Ceporro
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
Truncate tabla_usuarios

Y empezar de nuevo.

Para prevenir futuros problemas,

Delete from table  usuariosceporros where coeficiente_intelectual < 60

Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Martes, 27 Enero 2015, 20:03 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
Hola!.

Y si al entrar el registro también busca ?.  

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Martes, 27 Enero 2015, 20:12 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
Shordi:

Citar:
¿Qué método de buscar duplicados (mejor dicho posibles duplicados) se os ocurre?

Usando sentencias con "Like", y asi empezar a buscar los registros parecidos... aunque es muy manual te daria mucho trabajo.

Nota:
Para evitar esto, puede ayudar que tengan un formulario separado para las busquedas y otro para la inserción de registros.

Jguardon:
Citar:
Para prevenir futuros problemas,
Delete from table usuariosceporros where coeficiente_intelectual < 60

Hombre, eso es muy duro... lo suyo es darles clases y explicarles como hay que hacerlo. Poner un icono bien grande de LUPA, puede ayudar...  

Nosotros en la antigua empresa tuvimos muchos problemas con esto de tener registros duplicados... Por ejemplo poniamos "HM3" o "Hm3"  o "H-m3" o "Hm-3", etc... lo mejor es tener un criterio para insertar los datos  (por ejemplo todo en mayusculas, etc) y siempre antes de insertar algo nuevo, buscarlo por si ya estaba....

Otro posible solución es que solo algunas personas esten autorizadas para meter datos, y que ellos sepan las reglas a seguir para introducción de los registros.

Saludos

Añado:

Citar:
Qué método de buscar duplicados (mejor dicho posibles duplicados)


Hacer una función que compare entre los registros, y que te avise (o cree una tabla), donde indique que hay registros que pueden contener el mismo texto. Por ejemplo que cuente los caracteres que haya (sin contar las vocales, por ejemplo), y si encuentra otro registro con un % parecido te lo diga... algo asi de como busca un corrector ortografico.



 
última edición por jsbsan el Martes, 27 Enero 2015, 20:28; editado 1 vez 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Martes, 27 Enero 2015, 20:23 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
He encontrado una manera con la función soundex de mysql o el operador sounds like, que es lo mismo

SELECT a.rowid,a.nombre,a.localidad,b.rowid,b.nombre,b.localidad  FROM personas a , personas b WHERE a.nombre sounds LIKE b.nombre AND a.localidad sounds LIKE b.localidad AND a.rowid<> b.rowid
 


No es perfecto, sobre todo con los acentos y demás... pero se aproxima, se aproxima.



 
última edición por shordi el Martes, 27 Enero 2015, 23:21; editado 1 vez 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Martes, 27 Enero 2015, 23:21 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
Shordi:

Encontré esto:

SELECT columna1, columna2, count(*)
FROM tabla
GROUP BY columna1, columna2
HAVING count(*) > 1
 


Prueba a ver que hace, varia el número de columnas que te interesa buscar.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Miercoles, 28 Enero 2015, 00:51 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
Citar:

Shordi:

Encontré esto:

Código:
SELECT columna1, columna2, count(*)
FROM tabla
GROUP BY columna1, columna2
HAVING count(*) > 1

Prueba a ver que hace, varia el número de columnas que te interesa buscar.

Saludos
 


No, Shell, Group by y Having, son formas de gestionar la salida de la consulta, pero no de búsquedas "difusas". Tienen sus enormes ventajas y sus inconvenientes, pero no son para esto. Gracias por el interés.
Creo que el tema va más por eso de mandar un grupo de matones a la puerta de la casa de los usuarios y tal....     



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 28 Enero 2015, 09:43 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
Citar:
Poner un icono bien grande de LUPA, puede ayudar...  

De ese ya tenían, pero se lo ampliaré a 640 x 480 o así... brrrr... y pensar que todos tienen carrera y son licenciados... brrr....



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 28 Enero 2015, 09:45 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
Respecto a la lupa.

Entonces la lupa, ¿ que función cumple ?. ¿ Qué antes de ingresar un registro busca si existe lo que va a entrar el usuario ?.
Algo pesado . ¿ No ?. Si por cada registro que ingresa tiene que usar la lupa.  
Debe de ser eterno y por no decir tortuoso.

Puede que esto se deba hacer de una forma transparente, como que al darle al enter, se realice la búsqueda e informe
antes al usuario de que lo que va ingresar hay algo similar en la base de datos.

O hacer una búsqueda al final de entrar todos los registros.

Queda la posibilitad de que a la vez que escribe se abra una lista mostrando coincidencias, pero tiene que se de lento, que no veas.  

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Miercoles, 28 Enero 2015, 10:31 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Reto Del Usuario Ceporro 
 
Citar:
Respecto a la lupa.

Entonces la lupa, ¿ que función cumple ?. ¿ Qué antes de ingresar un registro busca si existe lo que va a entrar el usuario ?.
Algo pesado . ¿ No ?. Si por cada registro que ingresa tiene que usar la lupa.  
Debe de ser eterno y por no decir tortuoso.

Puede que esto se deba hacer de una forma transparente, como que al darle al enter, se realice la búsqueda e informe
antes al usuario de que lo que va ingresar hay algo similar en la base de datos.

O hacer una búsqueda al final de entrar todos los registros.

Queda la posibilitad de que a la vez que escribe se abra una lista mostrando coincidencias, pero tiene que se de lento, que no veas.  

Saludos


El problema no es la lupa. Nadie puede lanzarse a entrar datos sin una verificación previa. Es más, el programa, tal como está diseñado, no permite entrar a añadir nada sin antes tener delante de las narices la lista de lo existente. Sin embargo no hay defensa contra la ceporrez de algunas personas... no me tiréis de la lengua, que llevo 30 años peleando con los ususaurios...

Decía la vieja frase: "Es inútil intentar programar para tontos. Los tontos hacen siempre cosas extrañísimas".



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 28 Enero 2015, 11:53 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 3
Ir a la página 1, 2, 3  Siguiente
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron