Tak, pójdę z tym, z wyjątkiem tego, że nie usunę wpisu po wygaśnięciu wypożyczenia – łatwo będziesz wiedzieć, że wypożyczenie wygasło, ponieważ to już przeszłość, więc automatycznie zachowujesz również historię wypożyczeń.
W końcu istnieje nieskończona liczba dostępnych dat, więc musiałbyś sztucznie ograniczyć obsługiwany zakres dat, jeśli poszedłeś na odwrót (i zachowałeś bezpłatne daty).
W przyszłości. I w pewnym sensie także w przeszłości.
Domyślam się też, że potrzebujesz dodatkowych informacji na wypadek wypożyczenia usługi (np. nazwiska najemcy) i nie byłoby miejsca na przechowywanie tego, gdyby wynajem był reprezentowany przez nieistniejący wiersz!
Ponieważ szczegółowość wynajmu to cały dzień, myślę, że patrzysz na strukturę bazy danych podobną do tej:
Zwróć uwagę, jak RENTING_DAY PK naturalnie zapobiega nakładaniu się.
Ewentualnie możesz zrezygnować z RENTING_DAY i umieścić START_DATE i END_DATE bezpośrednio w RENTING, ale wymagałoby to wyraźnego zakresu czeki , które może nie skalować się idealnie .