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.
El Reto Del Usuario Ceporro
Objetivo: El Reto Del Usuario Ceporro
última edición por shordi el Martes, 27 Enero 2015, 17:54; editado 1 vez
última edición por shordi el Martes, 27 Enero 2015, 17:54; editado 1 vez
Objetivo: 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
Y empezar de nuevo.
Para prevenir futuros problemas,
Delete from table usuariosceporros where coeficiente_intelectual < 60
Saludos
Objetivo: Re: El Reto Del Usuario Ceporro
Hola!.
Y si al entrar el registro también busca ?.
Saludos
Y si al entrar el registro también busca ?.
Saludos
Objetivo: Re: El Reto Del Usuario Ceporro
última edición por jsbsan el Martes, 27 Enero 2015, 20:28; editado 1 vez
Shordi:
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:
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:
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.
Citar:
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:
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:
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
Objetivo: Re: El Reto Del Usuario Ceporro
última edición por shordi el Martes, 27 Enero 2015, 23:21; editado 1 vez
He encontrado una manera con la función soundex de mysql o el operador sounds like, que es lo mismo
No es perfecto, sobre todo con los acentos y demás... pero se aproxima, se aproxima.
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
Objetivo: Re: El Reto Del Usuario Ceporro
Shordi:
Encontré esto:
Prueba a ver que hace, varia el número de columnas que te interesa buscar.
Saludos
Encontré esto:
SELECT columna1, columna2, count(*)
FROM tabla
GROUP BY columna1, columna2
HAVING count(*) > 1
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
Objetivo: Re: El Reto Del Usuario Ceporro
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....
Citar:
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....
Objetivo: Re: El Reto Del Usuario Ceporro
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....
Citar:
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....
Objetivo: 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
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
Objetivo: Re: El Reto Del Usuario Ceporro
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".
Citar:
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".
Página 1 de 3
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 6.3244s (PHP: -99% SQL: 199%)
Consultas SQL: 48 - Debug off - GZIP Activado