Modelar Hotel

Modelar Hotel Haga una base de datos para el uso de una cadena de hoteles. Esta base de datos debe tomar nota de las res

Views 76 Downloads 3 File size 222KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 número 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 huéspedes, como alquiler de salas de reuniones, de coches, y otros. Para cada habitación en cada hotel, es necesario especificar su número, el tipo (Individual, doble, matrimonio, etc) y las opciones disponibles en la habitación: TV, casa de baño, internet, minibar, casa de baño privada, lavandería, etc. El sistema debe permitir especificar diversas opciones para cada habitación, pero sin limitarlas previamente. Cada huésped que pase por el hotel tiene que quedar registrado, siendo necesario guardar el nombre completo, el DNI, el teléfono 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 huéspedes para cada habitación, y para cada huésped las fechas de entrada y salida y el régimen alojamiento (Alojamiento, Alojamiento y desayuno, Media-Pensión, Pensión 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 categoría son por ejemplo "3 tenedores" u otra cosa, como no se especifica lo pongo varchar, si es en número de tenedores sería más conveniente usar un INT. Citar Relación HOTEL-SERVICIO idhotel (INT: primary_key) idservicio (INT: primary_key) Citar Tabla SERVICIO idservicio (INT: unique, auto_increment, primary_key) nombre (VARCHAR(255)) Citar Relación 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 Relación HOTEL-HABITACION idhotel (INT: primary_key) idhabitacion (INT: primary_key) Citar Tabla HABITACION idhabitacion (INT: unique, auto_increment, primary_key) tipo (VARCHAR(100)) Citar Relación 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

Relación 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 países. Se podría poner UNIQUE pero es posible que dos personas que vivan en la misma casa (por lo tanto con el mismo número fijo) hagan reservas individuales por lo que yo no usaría el atributo UNIQUE en el teléfono. ciudad (VARCHAR(150)) Citar Tabla RESERVA idreserva (INT: unique, auto_increment, primary_key) idhotel (INT: foreign_key) Citar Relación RESERVA-HABITACION idreserva (INT: primary_key) idhabitacion (INT: primary_key) Citar Relación 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 algún detalle pero no creo que falte nada importante. La entidad relación que yo haría sería así: Está hecho con DBDesigner, te lo aconsejo, porque creas la entidad relación, añades 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 diseñada.

En el modelo que he hecho en DBDesigner NO he puesto los atributos de cada tabla (sólo los claves principales y foráneas) para hacerla más sencilla de entender, pero

obviamente cada tabla tendrá que tener los atributos que ya he especificado arriba en este post.