Ver Mensaje Individual
  #6  
Antiguo 13-10-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Rc96 Ver Mensaje
Voy nuevamente para comodidad de los lectores.
En mi sistemas programo visitas para determinada fecha y la guardo en mi Bade de datos.
Debo tambien dejar la opcion abierta de poder programar una visita que vendra no por un solo dia sino por ejemplo desde hoy 06 hasta el 10 de octubre.
En el sistema tengo un modulo donde consultando a la tabla y veo quienes vienen hoy y asi le doy el acceso. pero lo que no se y por ende acudo a ustedes es que si la visita esta programada para venir desde desde hoy 06 hasta el 10 el sistema al ver la programaciones del dia muestre que el dia 6,7,8,9 y 10 la persona tiene autorizacion de entrar. algo asi como calcular las fechas que hay entre 06/10 al 10/10.
Pues, lo primero sería tener claro cómo modelar esto en tu base, creo yo.

Mencionas clientes y visitas; así que, de entrada necesitas esas dos tablas. Cada cliente puede tener varias visitas registradas pero, supongo, cada visita corresponderá a un sólo cliente. Por otra parte mencionas que cada visita puede constar de más de un día. Podrías pensar en un rango de días pero sería más flexible pensar en días no necesariamente contiguos (porque se atraviesa el fin de semana, o porque el cliente no puede el jueves, o por lo que sea). Entonces requerirás una tercera tabla que registre los días que conforman cada visita.

Aquí un esquema simplificado:


Mediante un

Código SQL [-]
SELECT cliente.nombre, visita.id
FROM visita, diasVisita, cliente
WHERE visita.id = diasVisita.visitaId and visita.clienteId = cliente.id and diasVisita.fecha = <<hoy>>

obtendrías la lista de clientes que visitarán el día de hoy. Y luego, si seleccionas uno podrás examinar el ID de la visita para conocer los otros días que viene:

Código SQL [-]
SELECT fecha
FROM diasVisita
WHERE visitaId = <<ID de la visita>>

LineComment Saludos
Responder Con Cita