Sì, lo farei, tranne per il fatto che non rimuoverei il record alla scadenza del noleggio:saprai facilmente che un noleggio è scaduto perché è nel passato, quindi manterrai automaticamente anche la cronologia dei noleggi.
Dopotutto, c'è un numero infinito di date disponibili, quindi dovresti limitare artificialmente l'intervallo di date supportato se facessi il contrario (e memorizzassi le date libere).
In futuro. E, in un certo senso, anche in passato.
Inoltre, immagino tu voglia qualche informazione aggiuntiva nel caso in cui un servizio sia noleggiato (es. nome dell'affittuario) e non ci sarebbe nessun posto dove memorizzarlo se l'affitto fosse rappresentato da una riga inesistente!
Poiché la granularità dell'affitto è di un'intera giornata, penso che tu stia guardando una struttura di database simile a questa:
Nota come RENTING_DAY PK prevenga naturalmente le sovrapposizioni.
In alternativa, potresti abbandonare RENTING_DAY e avere START_DATE e END_DATE direttamente in RENTING, ma ciò richiederebbe una esplicita intervallo di sovrapposizione controlli , che potrebbe non scalare idealmente .