[ Foro de SQL (y MySQL) ]

Primary Key

20-Apr-2016 18:30
Carlos Garciasanchez Garduño
1 Respuestas

Hola, necestio ayuda para resolver esto, estoy creando una base de datos en la cual tengo una tabla llamada Habitacion (id_habitación(PK), id_usuario(FK), status (ocupada/desocupada)), como veran esta ligada a otra tabla llamada Usuarios/Inquilinos (id_usuario (PK), nombre, apellido, correo, contraseña, telefono).

El problema es haciendo el analisis E-R, una habitación puede contener más de un usuario ej.
Habitación 1:  Juan Gómez y Carlos López.

Pero sabemos que una PK no puede repetirse. La pregunta es ¿Cómo puedo usar esa llave primaria en más de una ocación para agregar en su defecto a más de un usuario?


23-Apr-2016 13:14
Nacho Cabanes (+30)

Es que las relaciones, según el caso, se pueden convertir en nuevas tablas, o  pueden provocar que debas modificar las tablas existentes.

Por ejemplo, si una habitación puede tener muchas personas y una persona puede estar relacionada con muchas habitaciones (por ejemplo, porque quieras tener un histórico de quién ha estado en ella en ciertas fechas), esa relación "muchos a muchos" se convertiría en una nueva tabla, cuya clave primaria sería una clave compuesta por las claves primarias de ambas.

Si una habitación puede tener varias personas, pero cada persona sólo puede estar en una habitación, una de las formas más simples de hacerlo es que en la tabla persona aparezca el código de la habitación (y no lo que tú tienes, que es justo lo contrario: si en la tabla habitación aparece un código de usuario, no estás permitiendo que pueda haber varios usuarios en una misma habitación).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)