Buenas, tengo un pequeño problema.Resulta que a la hora de relacionar mis tablas que tienen mas de una primary key no logro hacerlo. Me explico.
Tengo una tabla HABITACION con primary key (num_habitacion,habita_id_hotel) y tengo otra tabla RESERVA con los siguientes campos primary key (num_reserva,cod_habitacion,id_hotel). Pues bien, kiero relacionar la tabla reservas con la tabla habitacion. Yo hago lo siguiente:
Código:
create table habitacion
(
num_habitacion number(6),
habita_id_hotel varchar2(4),
num_camas number(2),
precio number(5,2),
estado varchar2(15)
);
alter table habitacion add constraint num_habitacion_pk primary key(num_habitacion,habita_id_hotel);
alter table habitacion add constraint habita_id_hotel_fk foreign key(habita_id_hotel) references hotel(id_hotel);
Código:
create table reserva
(
num_reserva varchar2(15),
reser_id_hotel varchar2(4),
cod_habitacion number(6),
cod_cliente varchar2(8),
fecha_inicio date,
fecha_fin date
);
alter table reserva add constraint num_reserva_pk primary key(num_reserva,cod_habitacion,reser_id_hotel);
alter table reserva add constraint cod_habitacion_fk foreign key(cod_habitacion) references habitacion(num_habitacion);
Me dice ke no hay ninguna clave única o primaria correspondiente para esta columna.
Si pongo esto:
Código:
alter table reserva add constraint cod_habitacion_fk foreign key(cod_habitacion) references habitacion(num_habitacion,habita_id_hotel);
Me sale el error este: El numero de columnas de referencia debe coincidirc con las columnas a las que se hace referencia.
QUe toy haciendo mal? Como seria este tipo de relaciones con varios campos primary key? Muchas gracias.