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

[SOLUCIONADO] Relacion entre 3 tablas con triple llave compuesta

Estas en el tema de Relacion entre 3 tablas con triple llave compuesta en el foro de Bases de Datos General en Foros del Web. Buenas, tengo el siguiente problema, Tengo 3 tablas, Tabla Hotel, con idHotel como llave primaria. Tabla Habitaciones con idHabitacion + idHotel como llave primaria (compuesta) ...
  #1 (permalink)  
Antiguo 05/11/2016, 15:57
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 10 años, 3 meses
Puntos: 0
Relacion entre 3 tablas con triple llave compuesta

Buenas, tengo el siguiente problema,

Tengo 3 tablas,

Tabla Hotel, con idHotel como llave primaria.

Tabla Habitaciones con idHabitacion + idHotel como llave primaria (compuesta) y una constraint que hace que idHotel sea FK de HOtel

Ahora, tengo otra tabla llamada HabitacionExtras que tiene una llave compuesta por 3 campos: ExtrasidHotel, ExtrasidHabitacion y Extra

cuando hago
Código SQL:
Ver original
  1. ALTER TABLE HabitacionExtras  ADD CONSTRAINT ExtrasidHotel FOREIGN KEY(ExtrasidHotel)REFERENCES Hotel(idHotel)

Eso funciona bien, pero cuando hago
Código SQL:
Ver original
  1. ALTER TABLE HabitacionExtras  ADD CONSTRAINT ExtrasidHabitacion FOREIGN KEY(ExtrasidHabitacion)REFERENCES Habitacion(idHabitacion)

Da un error:

Msg 1776, Level 16, State 0, Line 1
No hay claves principales ni candidatas en la tabla a la que se hace referencia ('Habitacion') que concuerden con la lista de columnas que hace la referencia en la clave externa 'ExtrasidHabitacion'.
Msg 1750, Level 16, State 0, Line 1
No se pudo crear la restricción. Consulte los errores anteriores.asidHabitacion)REFERENCES Habitacion(idHabitacion)



Agradezco cualquier ayuda
  #2 (permalink)  
Antiguo 05/11/2016, 17:17
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Relacion entre 3 tablas con triple llave compuesta

Al final luego de mucho buscar lo solucione, les dejo por aqui la solucion

Código SQL:
Ver original
  1. ALTER TABLE HabitacionExtras WITH CHECK ADD CONSTRAINT [ExtrasidHotel] FOREIGN KEY ([ExtrasidHotel],[ExtrasidHabitacion]) REFERENCES Habitacion([idHotel], [idHabitacion])

Etiquetas: columna, compuesta, ip, llave, relacion, tablas, triple
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 13:05.