Ho proposto un esempio breve solo per poter inquadrare il problema, il sistema è già organizzato proprio come proponi anche tu.
Riguardo le prenotazioni effettuate, mi viene in testa il problema anche dell'eliminazione di una camera. Se a quella camera ci sono associate delle prenotazioni avvenute in passato punteranno a record non più esistenti....
l'eliminazione potrebbe avvenire attraverso una "flag" es:
active [0, 1]