Witam,
Myślę nad schematem bazy danych do systemu rezerwacji miejsc parkingowych. Zastanawiam się nad strukturą bazy, tak aby była możliwość sprawdzenia dostępności miejsca w czasie określonym przez użytkownika. Nie wiem, czy dobrze się do tego zabrałem.

Jako iż, chcę aby była możliwość rezerwacji miejsc w 15 minutowych przedziałach czasu. To wykombinowałem coś takiego:
Dzielę sobie dzień 24 godziny na 15 minutowe okresy czasu. Czyli dzień ma 24h zamieniam to na minuty, co daje nam 1440 minut. To dzielę przez swój okres czasowy (np. 15 min) i wychodzi 96. Teraz każdy rekord w tabeli odpowiada przedziałowi 15 minutowemu.

Tabela Przedzialy
--------------------------
dost_id[int] | czas[nvarchar] |
-------------------------
0 | 0.00-0.15 |
1 | 0.15-0.30 |
2 | 0.30-0.45 |
.....
96 | 23.45-0.00 |

Tabela Miejcsa - zawiera miejsca parkingowe
---------------------------
miejsce_id
---------------------------

Tabela zawierająca rezerwacje:

Tabela Rezerwacja
--------------------------
rezerwacja_id | dost_id | miejsce_id | user_id | data[date]
--------------------------

W rezerwacji rekordy wyglądałby następująco: przy rezerwacji dodawane byłyby rekordy z odpowiednimi (dost_id) przedziałami czasowymi, datą, id miejsca, id usera.

Użytkownik wybiera datę, zakres czasowy. System sprawdza czy miejsce jest wolne w wybranym zakresie czasowym (czy nie istnieją rezerwacje z wybranymi przedziałami czasowymi), jeżeli tak to tworzy rekordy w tabeli rezerwacja.

Co o tym sądzicie? Nie jest to pewnie optymalne rozwiązanie thumbsdownsmileyanim.gif Jakieś sugestie?