In quale caso vorresti occupare più di un campo?
Se non ho capito male andrebbe bene la soluzione che ti dicevo aggiungendo idparrucchiere visto che sono di più.
Ma vuoi dire che un utente ci può mettere 15 minuti e un altro 45? (per esempio)
Basta salvare in ORAFINE l'ora in cui vuoi che finisca. Ma non dovresti farlo scegliere a lui. Te lo calcoli tu in base a quello che lui sceglie di fare.
Ti faccio un esempio:
-un utente sceglie di fare solo il taglio: 15 minuti.
-un utente fa taglio e colore: 45 minuti.
etc...etc...
Ma devi solo fargli scegliere quello che deve fare, non l'orario in cui vuole che finisca.
Sarebbe poco sicuro e ovviamente non può sapere quanto il parrucchiere ci mette per fare quello che lui chiede.
Ovviamente devi mettere un controllo quando sceglie l'ora di inizio e quello che vuole fare. Dovresti dirgli se è libero oppure no facendo una semplice query nella tabella prenotazioni.