Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Problemas con relacion de tablas

Estas en el tema de Problemas con relacion de tablas en el foro de Oracle en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 21/10/2006, 02:33
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 19 años, 2 meses
Puntos: 0
Problemas con relacion de tablas

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.
  #2 (permalink)  
Antiguo 22/10/2006, 02:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 19 años, 2 meses
Puntos: 0
Ya sta solucionado.Resulta que tenía ke indicar en la foreign key la relacion entre ambas tablas segun los campos.Sería algo así:

alter table reserva add constraint cod_habitacion_fk foreign key(cod_habitacion,reser_id_hotel) references habitacion(num_habitacion,habita_id_hotel);
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:03.