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

Cómo hacer que no se pueda repetir valores?

Estas en el tema de Cómo hacer que no se pueda repetir valores? en el foro de Bases de Datos General en Foros del Web. Tengo una BD donde mis usuarios pueden insertar links sin revisión ninguna, lo que lleva a que muchos de los registros estén repetidos. El registro ...
  #1 (permalink)  
Antiguo 02/09/2007, 01:53
Avatar de ldp
ldp
 
Fecha de Ingreso: marzo-2005
Ubicación: Por fin, en mi nueva casa!
Mensajes: 617
Antigüedad: 19 años, 8 meses
Puntos: 3
Cómo hacer que no se pueda repetir valores?

Tengo una BD donde mis usuarios pueden insertar links sin revisión ninguna, lo que lleva a que muchos de los registros estén repetidos. El registro tiene distintos campos y me gustaría que no se pudieran repetir 3 de ellos.

Estaba pensando en hacerlos key, pero no sé si esto es correcto?

EDITO: qué es eso de "unique index" y dónde lo debería de poner? Admitiendo que sea la solución a mi problema...

EDITO2: puedo tener más de un campo "unique index"?

Última edición por ldp; 02/09/2007 a las 02:07
  #2 (permalink)  
Antiguo 04/09/2007, 05:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Cómo hacer que no se pueda repetir valores?

si a un campo lo marcas como UNIQUE se crea (en postgresql, al menos) un "unique index" que no es más que un indice para indexar ese campo.
asi de simple:

CREATE TABLE tabla (link UNIQUE, ....)

Saludos

se me olvidaba, puedes tener como UNIQUE, un campo o varios en la misma tabla, también puedes utilizar UNIQUE en una combinacion de campos, por ejemplo
CREATE TABLE tabla(..., id_user, link, .....
UNIQUE (id,user, link)
);
  #3 (permalink)  
Antiguo 06/09/2007, 00:52
Avatar de ldp
ldp
 
Fecha de Ingreso: marzo-2005
Ubicación: Por fin, en mi nueva casa!
Mensajes: 617
Antigüedad: 19 años, 8 meses
Puntos: 3
Re: Cómo hacer que no se pueda repetir valores?

Lo que me interesaba sobre todo es saber si soluciona mi problema. No quiero que mis usuarios puedan enviar información repetida, por ejemplo, enlaces con títulos repetidos. El "unique index" evita que se puedan introducir duplicados?
  #4 (permalink)  
Antiguo 06/09/2007, 02:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Cómo hacer que no se pueda repetir valores?

Cita:
Iniciado por ldp Ver Mensaje
Lo que me interesaba sobre todo es saber si soluciona mi problema. No quiero que mis usuarios puedan enviar información repetida, por ejemplo, enlaces con títulos repetidos. El "unique index" evita que se puedan introducir duplicados?
Has leido lo que te he contestado???

UNIQUE marca un campo como UNICO, es decir no puede almacenar datos repetidos, con esto solucionas el problema.

Unique index, no es más que un indice sobre un campo UNIQUE.

Saludos
  #5 (permalink)  
Antiguo 06/09/2007, 10:55
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Cómo hacer que no se pueda repetir valores?

Porque lo no haces desde la programación?, primero consultar si existe ese dato que tu quieres y en caso de no existir guardar la información, caso contrario manda mensaje de error.
saludos y quedo al pendiente a tus comentarios.
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #6 (permalink)  
Antiguo 07/09/2007, 03:57
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Cómo hacer que no se pueda repetir valores?

Cita:
Iniciado por acastillog70 Ver Mensaje
Porque lo no haces desde la programación?, primero consultar si existe ese dato que tu quieres y en caso de no existir guardar la información, caso contrario manda mensaje de error.
saludos y quedo al pendiente a tus comentarios.

Muy poco, por no decir nada, recomendable!
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 23:38.