Se ognuno definisce un PROPRIO orario notturno, allora devi definire un orario di inizio e uno di fine PER OGNI persona, quindi avrai tipo:
una tabella "utente" con vari dati
una tabella "notturni" che avrà ID, ID_Utente, Ora_Inizio, Ora_Fine
A questo punto, quando vai a vedere se l'acquisto deve avere una maggiorazione, metti in relazione "utente" con "notturni" tramite ID_Utente, recuperi quindi l'orario di inizio e fine e verifichi, lato programma ( !! ) se l'ora di acquisto è dentro l'intervallo "Ora_Inizio" e "Ora_Fine"...