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

Gestionar fechas

Estas en el tema de Gestionar fechas en el foro de Mysql en Foros del Web. Hola, necesito de vuestra ayuda. Os explico. Estoy desarrollando una pagina web con jsp y mysql. En mi pagina web el usuario debe poder realizar ...
  #1 (permalink)  
Antiguo 01/09/2007, 09:31
 
Fecha de Ingreso: septiembre-2007
Mensajes: 3
Antigüedad: 16 años, 7 meses
Puntos: 0
Gestionar fechas

Hola, necesito de vuestra ayuda. Os explico. Estoy desarrollando una pagina web con jsp y mysql. En mi pagina web el usuario debe poder realizar una busqueda de alojamiento segun la disponibilidad de fechas, ocupada o libre segun las fechas que haya introducido en el formulario. El problema es como guardar las fechas en la db. Es decir, como implementar la base de datos para que pueda hacer esta consulta de forma eficiente y rapida.
Muchas gracias!
  #2 (permalink)  
Antiguo 04/09/2007, 04:43
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: Gestionar fechas

mmm utilizando un tipo de datos fecha?!?!
  #3 (permalink)  
Antiguo 04/09/2007, 15:07
 
Fecha de Ingreso: septiembre-2007
Mensajes: 3
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Gestionar fechas

Primero de todo gracias Seyko por el interes. Sin embargo, creo que no me he expresado bien ya que tu respuesta es un tanto absurda.
Recapitulemos, imaginemos que cada fila de mi base de datos representa un hotel. En una de las columnas o en varias (no lo se) tengo que poner la informacion relacionada con las fechas en que este se encuentra ocupado. Por ejemplo, del dia 3 de enero al 15 enero ocupado y del 20 de marzo al 25 de marzo ocupado. Si mas no, con el transcurso de los dias puede que del 5 de marzo al 8 de marzo tambien este ocupado. Es decir, el numero de intervalos de tiempo que tengo que introducir en mi base de datos varia segun el tiempo y el hotel.
De momento lo he resuelto utilizando un campo text donde introduzco los intervalos de una forma especifica para que luego con el uso de java pueda extrataerlos facilmente. Sin embargo esta solucion no es nada eficiente ya que la consulta por fecha no se hace sobre la base de datos sino que se hace en una etapa posterior despues de haber recibido todos los resultados posibles.
Solo pedía si a alguien se le ocurria otra forma de hacerlo.
Gracias!
  #4 (permalink)  
Antiguo 04/09/2007, 18:33
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Gestionar fechas

Disculpa, pero yo no considero absurda la respuesta por la forma en que planteas tu pregunta y aún así, tratando de volver a exponerla, sigue sin mucho sentido.

Yo te respondería "con un UPDATE" lo cual sería lógico para mi pero no para vos. Debes ponerte en la postura nuestra ¿Crees que con esa información es suficiente?

No pones el SELECT que estas usando, no sabemos la estructura de tus tablas, no sabemos qué tabla vas a actualizar y los campos... NO sabemos nada.

Lo lógico y jugando a "adivina, adivinador", es utilizar 2 campos fecha. Una de inicio y otra de fin y por lógica (que NO se debe poner en esta sección), ir verificando cuando vence el plazo por habitación, realizando una comparación de fechas.

En un campo texto, no le veo sentido.

Voy a mover tu consulta a MySQL ya que lo estas nombrando y existe dicha sección, pero si vas a necesitar código de programación, por favor avisas para moverlo a la sección correspondiente.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 06/09/2007, 02:35
 
Fecha de Ingreso: septiembre-2007
Mensajes: 3
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Gestionar fechas

Primero de todo quería pedir disculpas por utilizar la palabra absurda que quizas ha contribuido a crear un ambiente tenso en este post. Sin embargo, la respuesta sarcastica que recibi me hizo salirme de mis casillas.
Dicho esto para ilustrar mejor el problema al que me enfrento es una buena idea visitar por ejemplo www.booking.com. Alli, como en mi pagina web aparece un formulario donde el usuario introduce el lugar donde busca el hotel y las fechas en las que quiere hospedarse. Mi formulario tiene algunos campos más pero no son relevantes.
La estructura de mi db es ID (tinyint), nombredb(varchar), lugardb(varchar), preciodb(smallint) y algunos más. Ademas de estos campos tambien es necesario introducir unos campos donde guardar las fechas en las que cada hotel se encuentra ocupado. Aqui radica el problema ya que aun no he encontrado la forma más eficiente de hacer esto. Cada fila representa a un hotel con sus datos básicos. El numero de columnas supera el millar.
El select no os lo puedo poner porque se construye en base a los datos que introduce el usuario en el formulario. Es decir, si por ejemplo solo rellena en el formulario el campo 'precio' el select sera select * from tabla where preciodb<=precio.
Si hubiera introducido el precio y el lugar el select seria-> select * from tabla where preciodb<=precio and lugardb=lugar.

La respuesta anterior si no entiendo mal crearia una estructura de datos (simplificada) como la siguiente: ID,nombre,lugar,precio,inicio y fin, donde inicio y fin son campos tipo fecha. Pero el problema aqui es que solo podría guardar un solo intervalo en el que el hotel se encontrase ocupado. A no ser que inicio y fin fueran un vector de campos tipo fecha. Existen vectores en mysql?
De no existir, que sinceramente no tengo ni idea, entonces la solucion seria crear tantos pares inicio fin como hicieran falta. Pero hay un problema basico:
El numero de pares puede ser muy elevado haciendo que la busqueda se ralentice mucho.
Imaginemos que el usuario solo quiere buscar hoteles segun la disponibilidad y el lugar. La consulta se demoraría demasiado.
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 22:02.