Jump to content


Photo

Qué es mejor ¿PK_UNIQUE_KEY o Consulta?


  • Please log in to reply
4 replies to this topic

#1 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 posts
  • LocationMisiones, Argentina

Posted 09 June 2014 - 02:36 PM

Desconozco el uso y carga del "constraint" Unique_Key.
¿qué es más recomendable?
1. Crear un constraint para evitar nombres duplicados (por ejempo el de una marca) y capturar la excepción cuando ocurra algún caso, o
2. evitar la inserción mediante una búsqueda de la cadena.

No es el caso de identificadores, yo no uso como clave primaria al nombre, sino que lo hago por medio de un ID autoincremental. El nombre es un detalle para otra tabla, pero deseo que sea irrepetible.

Yo me inclino por el primer caso. Pero agradezco si alguien me hace declinar o refuerza mi idea, pues como dije antes desconozco la forma en que firebird maneja estas cosas.

  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 09 June 2014 - 02:44 PM

En una situación como la tuya yo me decidí por crear un índice de valor único. :) Con muy muy buenos resultados.
  • 0

#3 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 posts
  • LocationMisiones, Argentina

Posted 09 June 2014 - 03:29 PM

Gracias por la respuesta.
Es que estoy refaccionando una base de datos para una versión más amplia y quiero hacerlo todo más "automatizado" y más del lado del servidor.

Ahora, lo que no me queda claro: ¿usás un ID para la instancia de entidad más el nombre e indizas ambos? o ¿solo el nombre?

(b)

  • 0

#4 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1092 posts
  • LocationMurcia, España

Posted 09 June 2014 - 04:19 PM

Si el nombre va a ser unico, podrías no tener un ID, pero yo prefiero un ID para poder hacer ref. sin perder que el nombre sea editable, nunca me gustó abusar del "on udpate cascade", me da miedo!

Ademas un ID que se decida en el oninsert de la table es super comodo, y si la clave primeria es de texto, eso lo pierdes.
  • 0

#5 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 posts
  • LocationMisiones, Argentina

Posted 09 June 2014 - 04:38 PM

Gracias Sergio eso me aclara más las cosas.

Pasa que me gusta el uso de los ID, más allá de agregar un campo más, por varias razones. Una de ellas es que es de uso exclusivo, otra es que no forma parte de los datos útiles y visibles para el usuario.

Por lo tanto asignaré como primary al ID_MARCA y como unique al NOMBRE_MARCA. Y listo.
Bueno gracias a ambos, con esto ya tengo decisión.
(b)
  • 0




IP.Board spam blocked by CleanTalk.