Ciao!
RAGIONIAMO
Dunque, ragionando in maniera barocca come sono solito fare pensavo di fare così. (nomi a caso)
codice:
Disponibilità
| IDdisponibilità | IDStanza | ORA |
Il campo ORA, tiene i valori in TIMESTAMP delle ore in cui quella Stanza è disponibile per i vari giorni del mese
Vale a dire, se la stanza è disponibile per 31 giorni al mese, e 24 ore al giorno, nel DB per quella stanza ci saranno 744 valori di ORA in timestamp corrispondenti ad ogni ora del mese.
codice:
Richieste
| IDRichiesta | IDuser | From | To |
FROM e TO sono due Range in timestamp equivalenti ad esempio a.. dal 10 agosto 2011 ore 10:00 al 12 agosto 2011 ore 11:30 (in timestamp quindi)
codice:
Prenotazioni
| IDPrenotazione | IDuser | IDStanza | From | To |
In questa tabella vengono salvati i dati di CHI prenota (IDuser) e quando FROM > TO
Avrei potuto salvare il riferimento all'indice IDdisponibilità.
Mi sarei semplificato la vita perchè le ore che presentavano un collegamento Disponibilità.IDdisponibilità = Prenotazioni.IDdisponibilità non sarebbero più utilizzabili.
MA, il problema è che una stanza disponibile dalle 10:00 alle 11:00 può essere prenotata anche per 15 minuti.
Quindi dalle 10:00 alle 11:00 può essere prenotata 4 volte a 4 diversi utenti.
Oddio... potrei mantenere questo meccanismo (Disponibilità.IDdisponibilità = Prenotazioni.IDdisponibilità) andando a salvare nella tabella Disponibilità non le singole ORE ma addirittura i QUARTI D'ORA in cui è disponibile... MMMMMMMMMmmmmmmmmmmmmmmm......
NOTA: la prenotazione non deve essere automatica.
Voglio fare in modo che date N Richieste, possa vedere quante stanze sono disponibili nel range FROM > TO
Una volta scelto quale stanza rendere prenotata, salvo nella tabella Prenotazioni il range FROM > TO - OPPURE l'associazione Disponibilità.IDdisponibilità = Prenotazioni.IDdisponibilità
MMMMMMMMMmmmmmmmmmmmmmmm......
Faccio prove.