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

como diseñar esta base de datos?

Estas en el tema de como diseñar esta base de datos? en el foro de Mysql en Foros del Web. saludos: quiero diseñar una base de datos para este formulario buscador, que estoy haciendo. http://viajes2000.freeiz.com/ es un formulario que me busque hoteles diciendome el precio ...
  #1 (permalink)  
Antiguo 14/02/2010, 20:27
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
como diseñar esta base de datos?

saludos:

quiero diseñar una base de datos para este formulario buscador, que estoy haciendo.

http://viajes2000.freeiz.com/


es un formulario que me busque hoteles diciendome el precio segun las caracteristicas. Y no se como diseñar la base de datos e pensado en esto:

tabla hoteles:

- id(key)
- nombre hotel
- compañia hotelera
- provincia
- categoria(1 estrella,2..3..)

ahora que deberia de hacer una "TABLA PRECIOS", pero no se que poner en esta tabla y que criterios seguir a la hora de calcular el precio segun la habitacion. numero de personas, numero de noches etc etc...

o si tengo que hacer mas tablas para relacionar los datos.......

que pensais vosotros?????
  #2 (permalink)  
Antiguo 15/02/2010, 04:34
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: como diseñar esta base de datos?

Hola rufus.

Yo creo que lo mejor es empezar con un buen diseño desde el prinicpio, porque luego segín avance el desarrollo los cambios se hacen cada vez más costosos.

Por eso te recomiendo que normalices la BD y tengas una tabla por entidad, además de las tablas auxiliares que te vayan haciendo falta.

En tu consulta yo veo las siguientes tablas:
-Hotel
-Empresa o Compañía Hotelera
-Provincia
-Disponibilidad (para guardar el número de habitaciones de cada tipo que están libres en cada día y en cada hotel)
-Precios (igual que la anterior pero para los precios)
NOTA: ¿Podría haber un precio de cada habitación para cada cliente o tipo de cliente?

NOTA2: He diseñado y construido un motor de reservas para una importante empresa hotelera de la Costa del Sol (España) y no es una tarea trivial lo que estás intentando hacer.

Es mucho más complicado que una simple búsqueda en una tabla.

A nosotros nos llevó unas 6.000 horas/hombre hacer este sistema, eso es un equipo de 4-5 personas durante un año aproximadamente.
  #3 (permalink)  
Antiguo 15/02/2010, 05:52
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: como diseñar esta base de datos?

teosanchez no me asustes :( ..

es que quiero aprender a diseñar bases de datos etc etc......pero si es muy complicado esta que quiero hacer!!! que practicas puedo hacer???? que me recomendais...un buscador de libros????
  #4 (permalink)  
Antiguo 15/02/2010, 08:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: como diseñar esta base de datos?

Lo que te está dando Teosanchez es una idea del esquema que se desprende del caso que expones. No es ni siquiera un ejemplo detallado, porque solamente menciona las entidades primarias que se ven desde el inicio. Una vez que ese esquema se completa con el que surge de las relaciones entre las entidades, suelen aparecer más tablas.
Como caso de práctica es un caso simple.

El problema aquí, según veo, es que estás intentando emprezar el trabajo por el final y no por el principio. Estas queriendo modelar la estructrua de datos, y aún no tienes modelado el sistema en sí, es decir, no tienes relevado su entorno, sus flujos de información, las actividades, las interacciones, los objetos, las relaciones, etc., etc.
Cuando realizas el análisis de un sistema se debe empezar por estas cosas, y es allí donde van apareciendo los requerimientos de datos que el sistema tendrá. Recién cuando el modelado del sistema está más o menos avanzado se preocupa uno por ver el modelo de datos (lógico o físico). Si lo haces al revés, te vas a pasar más tiempo modificando la base de datos que lo que pasarás codificando la página.
No es una buena idea empezar por la base. Luego, cuando cambies una tabla por necesidades que no habías visto, puedes encontrarte conque varios formularios dejan de funcionar... y tienes que volver a empezar a revisar lo revisado.

Analiza el sistema. Verifica los flujos de datos, determina las entidades, comprueba las relaciones y luego modela el sistema en general.

Recién entonces precúpate por la base de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/02/2010, 08:50
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: como diseñar esta base de datos?

gnzsoloyo gracias por responder.

Cada hotel pone un precio segun las caracteristicas que e puesto en el formulario que se puede ver en el enlace que e puesto antes. no?

1º con el php hago lo siguiente hay "X" hoteles en cada una de las 3 provincias malaga,granada y almeria. segun sea cada hotel de 1 , 2 , 3..estrellas le aplico un precio diferente de menos a más a cada una de las caracteristicas en las que me baso en calcular la noche(cada noche de hotel). Las cuales van sumando € al precio final por noche de cada consulta que se aga a la base de datos.


y gnzsoloyo dices : "y aún no tienes modelado el sistema en sí, es decir, no tienes relevado su entorno, sus flujos de información, las actividades, las interacciones, los objetos, las relaciones, etc., etc" Como ago todo esto que me dices??????

por que yo no se nada de hoteles e estado buscando en google informacion sobre este tema pero no e encontrado nada que me sea util.....
  #6 (permalink)  
Antiguo 15/02/2010, 09:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: como diseñar esta base de datos?

Cita:
Como ago todo esto que me dices??????
Eso es Análisis de Sistemas básico.
¿Has cursado algo relacionado con el tema (Yourdon, UML, POO, algo...), o eres directamente autodidacta?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/02/2010, 09:38
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: como diseñar esta base de datos?

estoy aprendiendo yo solo por mi cuenta.............
  #8 (permalink)  
Antiguo 15/02/2010, 09:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: como diseñar esta base de datos?

OK
En este momento estoy trabajando, más tarde te mando un link para que veas a qué me refiero y podamos aclarar algunas dudas, y posiblemente encarrilar la cosa hacia algo más organizado.

Si alguien más se prende a explicarte antes, mejor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 15/02/2010, 09:46
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: como diseñar esta base de datos?

gracias colega :D
  #10 (permalink)  
Antiguo 15/02/2010, 09:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: como diseñar esta base de datos?

Mira, he encontrado rápidamente este link de que te puede dar un paseo bastante detallado sobre el principio de diseño de bases de datos, que también contiene ejercicios resueltos de modelado, uno de los cuales habla de incidencias en un hotel.
Introducción a los sistemas de Bases de Datos
Está bastante bien descripto, e incluye los temas de normalización.

Dale una leída paciente y al menos empezaremos a acercarnos a tu solución.

También tenemos este ejemplo de implementación de reservas hoteleras.

Puede que te sirva
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 15/02/2010, 10:13
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: como diseñar esta base de datos?

ok voy a hecharle un vistazo......ya e visto un libro la biblia de mysql de la editorial anaya me lo voy a leer tambien.......
  #12 (permalink)  
Antiguo 18/02/2010, 04:58
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: como diseñar esta base de datos?

Hola Rufus.
No te asustes hombre, lo que pasa es que con las explicaciones que dabas era imposible hacerse una idea del alcance del sistema.

Si te parece, empieza por hacer una lista de las funciones que va a tener el sistema. Algo así:

El sistema debería:
1.- Permitir la creación, modificación y borrado de hoteles.
2.- Alta, modificación y baja de usuarios.
3.- etc

Estas son funciones atómicas, porque normalmente no se descomponen en otras.
Luego puedes tener otras más complejas (que se descompondrán en acciones atómicas) como por ejemplo:

1.- El usuario podrá realizar una reserva siempre que exista disponibilidad para todos los días del período seleccionado.
2.- etc.

A partir de ahí puedes empezar a diseñar el modelo de datos y a construir tu aplicación.

saludos.

Etiquetas: diseño
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 02:25.