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

[SOLUCIONADO] Problema creacion base de datos reservaciones

Estas en el tema de Problema creacion base de datos reservaciones en el foro de SQL Server en Foros del Web. Hola tengo el siguiente caso estoy programando en asp.net lo que necesito es esto crear las siguientes tablas no se si esten bien creadas pero ...
  #1 (permalink)  
Antiguo 21/03/2013, 02:09
 
Fecha de Ingreso: abril-2012
Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Problema creacion base de datos reservaciones

Hola tengo el siguiente caso
estoy programando en asp.net lo que necesito es esto crear las
siguientes tablas no se si esten bien creadas pero lo que necesito es que
cada mesa tenga horas por ejemplo la mesa1 tengas las siguiente horas
de 00:00 hasta 23:30

tabla mesa

tabla reservaciones

tabla horario(no se si crearla donde pueda poner todas las horas de las mesas)

las cuales tengan una hora de entrada y salida
lo que quiero cuando ingrese una mesa reservervada

insert into reservaciones values('rese01','mesa1','08:00','12:00')

y cuando yo busque la mesa un mesa me salga las horas que esa mesa esta disponible

en este caso seria desde las 00:00 hasta las 08:00 y desde 12:00 hasta las 23:30

pero tbm tengo una duda como haria para yo haga una busqueda
y en esa busqueda por ejemplo pongo

fecha='22/03/2013'

y en esa fecha me bota las horas y las mesas disponibles..
Bueno eso es todo gracias por todo de antemano por leer y tomarse la molestia de ayudarme

mis tablas en sql


create table hora(
cod_hora char(6) primary key,
hora_entrada time,
hora_salida time
)

create table mesa(
cod_mesa char(6)primary key ,
mesa_desc varchar(30) ,
hora_cod char(6),
constraint fk_mesa_hora foreign key (hora_cod) references hora(cod_hora)
)

create table reservaciones(
cod_rese char(6) primary key ,
rese_fecha date ,
mesa_cod char(6),
hora_salida time,
constraint fk_reser_mesa foreign key (mesa_cod) references mesa(cod_mesa)
)
  #2 (permalink)  
Antiguo 21/03/2013, 10:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Problema creacion base de datos reservaciones

Una fecha NUNCA (JAMAS) se busca con igual (=), ya que contiene Horas y minutos.

Debes plantear preguntas puntuales, o ¿quieres que te ayudemos a diseñar tu sistema?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 21/03/2013, 10:13
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema creacion base de datos reservaciones

Cita:
Iniciado por iislas Ver Mensaje
Una fecha NUNCA (JAMAS) se busca con igual (=), ya que contiene Horas y minutos.

Debes plantear preguntas puntuales, o ¿quieres que te ayudemos a diseñar tu sistema?
totalmente de acuerdo :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 21/03/2013, 10:34
 
Fecha de Ingreso: abril-2012
Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema creacion base de datos reservaciones

solo quiero que me ayuden con la logica nada mas como haria e leido algunas cosas por hay que se deberia hacer con un calendario especial que me muestre los dias que estan reservados pero no creo que se pueda en asp por que los ejemplos que vi estan en php gracias por su ayuda...
  #5 (permalink)  
Antiguo 21/03/2013, 10:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema creacion base de datos reservaciones

si esta en php se puede lograr con asp....puntualmente cual es tu duda?

si es en la estructura de las tablas puede quedar:

tabla horarios
id_hora hora_inicio hora_fin

tabla mesas
id_mesa num_mesa

tabla reservaciones
id_reservacion fecha id_mesa id_horario


y con eso puedes poner los horarios para todas las mesas(sin necesidad de crear un horario para cada mesa) ademas de saber si la mesa tiene reservacion o no(si el id mesa aparece en la tabla reservaciones entonces tiene reservacion para dado dia, para dada hora)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 21/03/2013, 10:44
 
Fecha de Ingreso: abril-2012
Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema creacion base de datos reservaciones

claro lo que dices tiene razon ahora mi pregunta seria como se que mesas estan disponibles en una determinada fecha y que horas estan disponibles para reservar esa mesa
  #7 (permalink)  
Antiguo 21/03/2013, 11:28
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema creacion base de datos reservaciones

tienes una tabla reservaciones que tiene los id horarios, solo tendrias que ver que horarios estan dispobibles para cierta mesa :).

algo como esto:

Código SQL:
Ver original
  1. CREATE TABLE #horarios(
  2. id INT,
  3. hora_inicio INT,
  4. hora_fin INT
  5. )
  6.  
  7. CREATE TABLE #mesa(
  8. id INT,
  9. nombre VARCHAR(10)
  10. )
  11.  
  12. CREATE TABLE #reservaciones(
  13. id INT,
  14. id_horario INT,
  15. id_mesa INT,
  16. fecha VARCHAR(20)
  17. )
  18.  
  19. INSERT INTO #horarios VALUES (1,1,2)
  20. INSERT INTO #horarios VALUES (2,2,3)
  21. INSERT INTO #horarios VALUES (3,3,4)
  22. INSERT INTO #horarios VALUES (4,4,5)
  23.  
  24.  
  25. INSERT INTO #mesa VALUES (1,'mesa1')
  26. INSERT INTO #mesa VALUES (2,'mesa2')
  27. INSERT INTO #mesa VALUES (3,'mesa3')
  28. DELETE FROM #reservaciones
  29. INSERT INTO #reservaciones VALUES (1,1,1,CONVERT(VARCHAR(20),GETDATE(),101))
  30. INSERT INTO #reservaciones VALUES (2,2,1,CONVERT(VARCHAR(20),GETDATE(),101))
  31. INSERT INTO #reservaciones VALUES (5,3,1,CONVERT(VARCHAR(20),GETDATE(),101))
  32. INSERT INTO #reservaciones VALUES (6,1,2,CONVERT(VARCHAR(20),GETDATE(),101))
  33. INSERT INTO #reservaciones VALUES (7,3,2,CONVERT(VARCHAR(20),GETDATE(),101))
  34.  
  35. INSERT INTO #reservaciones VALUES (3,1,1,CONVERT(VARCHAR(20),dateadd(dd,1,GETDATE()),101))
  36. INSERT INTO #reservaciones VALUES (4,2,2,CONVERT(VARCHAR(20),dateadd(dd,1,GETDATE()),101))
  37.  
  38.  
  39.  
  40. --Horas ocupadas
  41. SELECT m.nombre,h.hora_inicio,h.hora_fin,r.fecha FROM #reservaciones AS r,#horarios AS h, #mesa AS m
  42. WHERE r.id_horario=h.id AND m.id=r.id_mesa AND fecha=CONVERT(VARCHAR(20),GETDATE(),101)
  43.  
  44. --Horas Libres
  45. SELECT DISTINCT hora_inicio,hora_fin,nombre,fecha FROM #reservaciones AS r,#horarios AS h, #mesa AS m
  46. WHERE fecha=CONVERT(VARCHAR(20),GETDATE(),101) AND CONVERT(VARCHAR(20),h.id) + '|' + CONVERT(VARCHAR(20),m.id) NOT IN (
  47. SELECT CONVERT(VARCHAR(20),id_horario) + '|' + CONVERT(VARCHAR(20),id_mesa) FROM #horarios,#reservaciones WHERE #horarios.id=#reservaciones.id_horario AND #reservaciones.fecha=CONVERT(VARCHAR(20),GETDATE(),101)
  48. )
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 21/03/2013, 12:29
 
Fecha de Ingreso: abril-2012
Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema creacion base de datos reservaciones

muchas gracias voy me sirvio de mucho tu consulta ahora mismo las estoy haciendo procedimientos almacenados :D !!! despues subire el resultado final

Etiquetas: server, sql, tabla
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 11:22.