Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/12/2005, 03:19
Avatar de jeubeda
jeubeda
 
Fecha de Ingreso: octubre-2004
Ubicación: Argentino, en Valencia, E
Mensajes: 78
Antigüedad: 20 años, 3 meses
Puntos: 0
una clave secundaria

Este es un asunto sobre el que hay bastante escrito. Utilizar un número único es que identifique la fila es lo que llaman usar surrogates. El problema es que el atributo que identifica es el nombre. De lo contrario, a pesar de usar un número como identificador único, es necesario verificar que el nombre no exista: un problema común en este caso es que dos nombres iguales se ingresen con dos números distintos. Es decir, el número es un identificador unívoco, pero igualmente necesito una clave secundaria que me asegure que el nombre no haya sido ingresado previamente, salvo que el número sea el resultado de un algoritmo que genere un valor basado en el string (tipo crc). Si el caso es que estamos hablando de una base de datos pequeña, quizá usar el nombre como identificador primario no implique problemas de performance, con lo que pudiera ser la mejor solución. Si, por el contrario, la cantidad de filas será grande, o existirán muchas relaciones con otras tablas, mantener una clave secundaria para controlar la inserción de filas sería necesario. De esa forma, se atiende a lo que Mithrandir observa (la intervención en joins).
__________________
Jorge Ubeda
Página, Blog

Última edición por jeubeda; 27/12/2005 a las 04:05