Razvijam aplikaciju za rezervaciju smještaja / apartmana u kojoj više potencijalnih gostiju može poslati zahtjev za rezervaciju jednog apartmana i svi imaju status 0 (nula, upućen zahtjev za rezervaciju), osim onoga čija je rezervacija potvrđena (status 1).
tabela izgeda ovako nekako:
apartment_id | guest_id | start | end | status
1 | 1 | 2015-09-22 14:00:00 | 2015-09-29 10:00:00 | 0
1 | 2 | 2015-09-23 14:00:00 | 2015-09-28 10:00:00 | 0
1 | 3 | 2015-09-21 14:00:00 | 2015-09-30 10:00:00 | 0
1 | 4 | 2015-09-20 14:00:00 | 2015-09-30 10:00:00 | 1
Svaki put kada se šalje zahtjev za rezervaciju, ujedno se provjerava je li taj apartman rezervisan (status 1) za traženi period.
Traženi period može imati preklapanja, npr gost je zainteresiran za period 2015-09-24 | 2015-09-27, no taj apartman je već rezervisan za period 2015-09-20 14:00:00 | 2015-09-30 10:00:00
Kako provjeriti je li apartman "1" ima status "1" u vremenskom periodu od (Start) 2015-09-24 do (End) 2015-09-27, ako te datume nemamo u bazi podataka? Možete promijeniti ove datume recimo od 17 do 22, ili od 18 do 01...
Druga opcija koja mi se vrti po glavi je unijeti u tabelu svaki datum tijekom slanja zahtjeva za rezervaciju, čini mi se da bi bilo jednostavnije pronaći je li na taj dan apartman zauzet.
npr
apartment_id | guest_id | dates | status
1 | 1 | 2015-09-22 10:00:00 | 0
1 | 1 | 2015-09-23 00:00:00 | 0
1 | 1 | 2015-09-24 00:00:00 | 0
1 | 1 | 2015-09-25 14:00:00 | 0
....
Vaše mišljenje za ovaj pristup?
Hvala