Sto avendo un po 'di problemi a progettare una nuova funzione al momento. Fa parte di un sistema di gestione delle risorse. Mi stavo chiedendo se qualcuno ha esperienza nel fare qualcosa di simile.
Proverò a spiegare:
Risorsa : una persona, un luogo o una cosa
Modello di disponibilità (AT) : consente di definire un modello di disponibilità standard per un tipo di risorsa. ad esempio: lun-ven 9-5.
Disponibilità aggiuntiva delle risorse (AA) : consente di definire la disponibilità una tantum per una risorsa. ad esempio: il lavoro straordinario di Bob 10-3 il sabato.
Esclusioni dalla disponibilità delle risorse (AE) : consente di definire quando una risorsa non è disponibile. ad esempio: la camera 4 viene pulita tra 4-5 di venerdì.
È abbastanza semplice verificare se una risorsa è disponibile o meno in un momento specifico: Disponibilità = (AT (rID, tempo) || AA (rID, tempo)) & & ! AE (rID, tempo).
Ma devo essere in grado di interrogare la disponibilità di una risorsa per un periodo di tempo. vale a dire: "La stanza 4 è disponibile alle 9:00 per 2 ore giovedì?".
Finora, ho creato un algoritmo che "campiona" la disponibilità a intervalli specifici nel periodo di tempo. Tuttavia, ciò significa che la disponibilità restituita è in ritardo rispetto alla disponibilità effettiva e alcune informazioni potrebbero essere perse.
Ad esempio: se campiono la disponibilità ogni 15 minuti tra 9 e 11, mancherebbe un'esclusione tra 9:05 e 9:10.
Potrei usare un periodo di campionamento molto piccolo (es: 1 minuto) ma potrebbe non essere performante e nel complesso è ancora un brutto approccio brute-force.
Esistono schemi o algoritmi standard per questo tipo di problema?