Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/03/2013, 09:25
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: ¿Foreign key debe de ser clave primaria?

Empecemos por el principio:
Si tienes una tabla clientes, todos los atributos que son propios del cliente van en ella. No tiene ningún sentido partirla en dos para guardar algunos datos en otra tabla, si la relación es 1:1, y los datos son siempre obligatorios.

Sólo se hace una descomposición si se cumple alguna de dos condiciones:
1) Se trata de un conjunto de atributos opcionales que pueden expresarse como una única entidad.
2) Se trata de atributos que pueden ser opcionales o no, pero que pueden tener más de una instancia de valores, y por tanto representan una relación al menos 1:N (o N:N) con otro concepto que se puede describir como entidad.

En cualquiera de los dos casos, la PK de esa tabla debe contener a la FK que apunta a la tabla de Cliente. Siempre.
La única consideración es que si la relación de esa tabla es 1:N, la PK de la tabla secundaria debe ser una clave compuesta (y en este caso la componente no debe ser autoincremental).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)