Ir al contenido


Foto

Qué es mejor ¿PK_UNIQUE_KEY o Consulta?


  • Por favor identifícate para responder
4 respuestas en este tema

#1 cram

cram

    Advanced Member

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

Escrito 09 junio 2014 - 02:36

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
  • 4.945 mensajes
  • LocationMéxico

Escrito 09 junio 2014 - 02:44

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 mensajes
  • LocationMisiones, Argentina

Escrito 09 junio 2014 - 03:29

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
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 09 junio 2014 - 04:19

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 mensajes
  • LocationMisiones, Argentina

Escrito 09 junio 2014 - 04:38

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.