Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Que no se agreguen 2 registros iguales en mysql

Estas en el tema de Que no se agreguen 2 registros iguales en mysql en el foro de Mysql en Foros del Web. hola, como le hago para que cuando este agregando registros en una mysql, cuando aya algún repetido no lo agregue? y si es posible salga ...
  #1 (permalink)  
Antiguo 08/10/2010, 06:12
 
Fecha de Ingreso: abril-2009
Mensajes: 162
Antigüedad: 15 años
Puntos: 6
Información Que no se agreguen 2 registros iguales en mysql

hola, como le hago para que cuando este agregando registros en una mysql, cuando aya algún repetido no lo agregue? y si es posible salga un mensaje de error
__________________
Manual de Javascript
  #2 (permalink)  
Antiguo 08/10/2010, 06:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Que no se agreguen 2 registros iguales en mysql

Hay muchas formas de lograrlo, pero yo empezaría por hacer que la interfase validara los datos contra la base antes de enviarlos a insertar, y de esa forma evitar problemas... Por lo demás, esa es la forma correcta de programar.
¿Para qué enviarle a la base algo duplicado si puedes verificar previamente que ya existe? Eso es una mala práctica.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/10/2010, 06:54
 
Fecha de Ingreso: abril-2009
Mensajes: 162
Antigüedad: 15 años
Puntos: 6
Respuesta: Que no se agreguen 2 registros iguales en mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Hay muchas formas de lograrlo, pero yo empezaría por hacer que la interfase validara los datos contra la base antes de enviarlos a insertar, y de esa forma evitar problemas... Por lo demás, esa es la forma correcta de programar.
¿Para qué enviarle a la base algo duplicado si puedes verificar previamente que ya existe? Eso es una mala práctica.
cuando hablas de verificar si ya existe, te refieres a usar por ejemplo php, para validar si existe o no?


la verdad también pensé en eso, incluso asi es que lo hago pero que mamera toda esa lineas de códigos, quería saber si hay un método mas practico y sensillo, por ejemplo ponerle una clave,como la primary que creo que no acepta numeros repetidos
__________________
Manual de Javascript
  #4 (permalink)  
Antiguo 08/10/2010, 07:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Que no se agreguen 2 registros iguales en mysql

Cita:
la verdad también pensé en eso, incluso asi es que lo hago pero que mamera toda esa lineas de códigos, quería saber si hay un método mas practico y sensillo, por ejemplo ponerle una clave,como la primary que creo que no acepta numeros repetidos
Hay modos de asegurarse que no existan duplicaciones, o repeticiones, y parte de ello precisamente compone los fundamentos de las bases de datos relacionales. El único problema es que para aprovechar esas ventajas tienes que hacer buenos diseños de bases de datos, y no crear las tablas al azar, poniendo, por ejemplo, claves primarias numericas y autoincrementales. Tienes que crearlas en función del análisis de esa entidad en particular.
Dos ejemplos:
1) Los productos comerciales en el stock de una tienda. ¿Por qué ponerles numeros de ID autoincrementales, si cada producto tiene un código EAN13 que lo identifica? Es mucho más seguro y es absolutamente irrepetible, e identifica univocamente no sólo un producto, sino también a sus derivados (cada medida de envase de un mismo producto, por ejemplo, tiene un código distinto).
2) Las personas, se suelen identificar por su documento, los empleados por su numero de registro laboral o su inscripción a la seguridad social, las empresas por sus registraciones jurídicas, etc. ¿Para qué ponerles otra cosa?

Aún así, estos caso no desdicen lo que te decía al principio: es mejor verificar vía interfase para no enviar inutilmente algo que ya exista. Siempre será mejor, porque de lo contrario estás ocupando la comunicación con una masa de datos inútil, cuando enviando sólo algunos de ellos ya puedes hacer la verificación con mejores resultados...

Con el tiempo verás que el tiempo perdido en verificar una simple clave, es mucho menor que el que te lleva programar y depurar las rutinas que necesitas para administrar un error retornado por registros de clave duplicada.

Mantenlo simple.

Respecto de poner índices UNIQUE, son una manera de crear claves alternativas para ciertos casos, pero nada de eso será útil sin las rutinas de verificación, y por experiencia te digo que depurar eso lleva más tiempo y más problemas que hacer verificaciones contra la base...
Son útiles, siempre y cuando sean correctamente aprovechados y diseñados, pero nunca suplirán completamente una interfase bien programada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: iguales, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:29.