El Reto Del Usuario Ceporro
Artículo |
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 [ Martes, 27 Enero 2015, 17:53 ]
|
|
El Reto Del Usuario Ceporro
Comentarios |
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 [ Martes, 27 Enero 2015, 20:03 ]
|
|
Re: El Reto Del Usuario Ceporro
|
Hola!.
Y si al entrar el registro también busca ?.
Saludos
|
Shell [ Martes, 27 Enero 2015, 20:12 ]
|
|
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 [ Martes, 27 Enero 2015, 20:23 ]
|
|
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 [ Martes, 27 Enero 2015, 23:21 ]
|
|
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 [ Miercoles, 28 Enero 2015, 00:51 ]
|
|
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 [ Miercoles, 28 Enero 2015, 09:43 ]
|
|
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 [ Miercoles, 28 Enero 2015, 09:45 ]
|
|
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 [ Miercoles, 28 Enero 2015, 10:31 ]
|
|
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 [ Miercoles, 28 Enero 2015, 11:53 ]
|
|
|
|
Página 1 de 3
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
|
|