Quindi sto pianificando un sistema di prenotazione delle risorse di base. Fondamentalmente avrò una stanza (risorsa) che ha il numero X di punti aperti per incremento di 30 minuti. Quando qualcuno riserva una risorsa, la memorizzerei come risorsa A è riservata dall'inizio alla fine.
Ora per trasmettere all'utente finale se sono disponibili spazi aperti per una risorsa in un dato momento. Devo controllare se il numero di prenotazioni (Y) in quella finestra di 30 minuti è inferiore al numero di punti aperti (X).
L'unico modo in cui posso pensare di farlo è inefficiente. Quella è interrogare le prenotazioni per il giorno, scorrere le ore del giorno e per ogni blocco di 30 minuti, contare il numero di prenotazioni in quel blocco (tramite il codice lato server invece che nel DB). Sono meno esperto di SQL.
Esiste un modo in cui posso eseguire tutto ciò sul lato DB in una query, quindi la query restituisce qualcosa come una riga per ogni risorsa e una colonna per ogni incremento di 30 minuti con i valori come numero di posti aperti / occupati?
Sono aperto a uno schema DB diverso, ma nel modo in cui lo vedo ho una tabella o risorse che indicano il tempo massimo di inizio-inizio per le prenotazioni, il numero di possibili aperture per periodo di tempo; una tabella di prenotazioni che indica quale risorsa era e l'ora di inizio della prenotazione.