You are on page 1of 4

Modelar Hotel

Haga una base de datos para el uso de una cadena de hoteles. Esta base de datos debe tomar
nota de las reservas efectuadas, de tal modo que permita gestionar corrientemente el hotel.

La base de datos debe registrar todos los hoteles de la cadena, y para cada uno especificar: el
nmero de estrellas, la morada y la ciudad; restaurantes/bares que el hotel pueda tener,
incluyendo su categoria y el tipo de comidas que proporciona en cada uno (snack, desayuno,
comida, cena). Aparte de eso, debe especificar los servicios disponibles para los huspedes,
como alquiler de salas de reuniones, de coches, y otros.
Para cada habitacin en cada hotel, es necesario especificar su nmero, el tipo (Individual, doble,
matrimonio, etc) y las opciones disponibles en la habitacin: TV, casa de bao, internet, mini-
bar, casa de bao privada, lavandera, etc. El sistema debe permitir especificar diversas opciones
para cada habitacin, pero sin limitarlas previamente.
Cada husped que pase por el hotel tiene que quedar registrado, siendo necesario guardar el
nombre completo, el DNI, el telfono y la ciudad donde habita. Para cada reserva, es necesario
guardar la(s) habitaciones(s) para la(s) cual(es) la reserva est hecha, los huspedes para cada
habitacin, y para cada husped las fechas de entrada y salida y el rgimen alojamiento
(Alojamiento, Alojamiento y desayuno, Media-Pensin, Pensin Completa).

Tabla HOTEL
idhotel (INT: unique, auto_increment, primary_key)
nombre (VARCHAR(150))
estrellas (INT)
morada (VARCHAR(150) Aunque no estoy seguro a que se refiere con morada
ciudad (VARCHAR(150))

Citar
Tabla RESTAURANTE
idrestaurante (INT: unique, auto_increment, primary_key)
idhotel (INT: foreign_key)
nombre (VARCHAR(150))
categoria (VARCHAR(150)) No s si la categora son por ejemplo "3 tenedores" u otra
cosa, como no se especifica lo pongo varchar, si es en nmero de tenedores sera ms
conveniente usar un INT.

Citar
Relacin HOTEL-SERVICIO
idhotel (INT: primary_key)
idservicio (INT: primary_key)

Citar
Tabla SERVICIO
idservicio (INT: unique, auto_increment, primary_key)
nombre (VARCHAR(255))

Citar
Relacin RESTAURANTE-COMIDA
idrestaurante (INT: primary_key)
idcomida (INT: primary_key)

Citar
Tabla COMIDA
idcomida (INT: unique, auto_increment, primary_key)
tipo (ENUM('snack','desayuno','comida','cena'))

-----------
Citar
Relacin HOTEL-HABITACION
idhotel (INT: primary_key)
idhabitacion (INT: primary_key)

Citar
Tabla HABITACION
idhabitacion (INT: unique, auto_increment, primary_key)
tipo (VARCHAR(100))

Citar
Relacin HABITACION-SERVICIO
idhabitacion (INT: primary_key)
idserviciohabitacion (INT: primary_key)

Citar
Tabla SERVICIO_HABITACION
idserviciohabitacion (INT: unique, auto_increment, primary_key)
nombre (VARCHAR(255))

-------------
Citar
Relacin HOTEL-HUESPED
idhotel (INT: primary_key)
idhuesped (INT: primary_key)

Citar
Tabla HUESPED
idhuesped (INT: unique, auto_increment, primary_key)
nombre (VARCHAR(200))
DNI (VARCHAR(10): unique)
telefono (VARCHAR(13)) 13 Caracteres para poder almacenar prefijos de distintos
pases. Se podra poner UNIQUE pero es posible que dos personas que vivan en la
misma casa (por lo tanto con el mismo nmero fijo) hagan reservas individuales por lo
que yo no usara el atributo UNIQUE en el telfono.
ciudad (VARCHAR(150))

Citar
Tabla RESERVA
idreserva (INT: unique, auto_increment, primary_key)
idhotel (INT: foreign_key)

Citar
Relacin RESERVA-HABITACION
idreserva (INT: primary_key)
idhabitacion (INT: primary_key)

Citar
Relacin RESERVA-HUESPED
idreserva (INT: primary_key)
idhabitacion (INT: primary_key)
idhuesped (INT: primary_key)
fecha_entrada (DATE)
fecha_salida (DATE)
regimen
(ENUM('alojamiento','alojamiento_desayuno','media_pension','pension_completa'))

Es posible que me haya equivocado en algunas cosas, porque lo he hecho sobre la
marcha aqu en el foro, ni lo he dibujado, ni lo he probado, pero creo que en general se
adapta a los requerimientos del ejercicio, puede que falte algn detalle pero no creo que
falte nada importante.

La entidad relacin que yo hara sera as:

Est hecho con DBDesigner, te lo aconsejo, porque creas la entidad relacin, aades los
atributos correspondientes y luego exportas a SQL. Ese archivo SQL lo importas en tu
gestor de bases de datos y ya tienes la tabla creada y diseada.


En el modelo que he hecho en DBDesigner NO he puesto los atributos de cada tabla
(slo los claves principales y forneas) para hacerla ms sencilla de entender, pero
obviamente cada tabla tendr que tener los atributos que ya he especificado arriba en
este post.

You might also like