Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/04/2015, 05:51
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, 4 meses
Puntos: 2658
Respuesta: Clave de entidad debil a otra entidad

OK. Por empezar, una aclaración conceptual: Cuando trabajamos con el modelo físico, es decir con tablas, no hablamos de entidades, ni tuplas. Esos son términos que aluden al modelo lógico o de sistema, y no al modelo físico.
No existe una relación 1:1 entre las entidades y las tablas, dado que entre otras cosas una misma entidad del modelo lógico puede terminar requiriendo 1 a N tablas. Eso se puede ver claramente cuando estudias las Formas Normales.

Por otro lado, hay alguna confusión en lo que es una FK: Es un campo o conjunto de campos que referencia a la PK de otra tabla. En consecuencia, si la PK de la tabla referenciada es una clave compuesta, la FK debe ser también compuesta, por campos del mismo tipo y en el mismo orden.
Código SQL:
Ver original
  1. /* Linea */
  2. CREATE TABLE linea(
  3.       n_linea VARCHAR2(10),
  4.       c_red NUMBER(8),
  5.       longitud NUMBER(6) NOT NULL,
  6.       CONSTRAINT linea_pk PRIMARY KEY (n_linea,c_red),
  7.       CONSTRAINT linea_ch CHECK(longitud BETWEEN 1 AND 999999),
  8.       CONSTRAINT red_linea_fk REFERENCES red(c_red) ON DELETE CASCADE
  9.       );
  10.  
  11. /* Subestacion */
  12. CREATE TABLE subest(
  13.       n_subest VARCHAR2(20) NOT NULL,
  14.       n_linea VARCHAR2(10) NOT NULL,
  15.       c_red NUMBER(8) NOT NULL ,
  16.       CONSTRAINT subest_n_pk PRIMARY KEY (n_subest),
  17.       CONSTRAINT linea_nlinea_fk FOREIGN KEY (n_linea,c_red) REFERENCES linea(n_linea,c_red)
  18.       );
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)