MySQL: pronađi preklapanje u vremenskom periodu.

poruka: 3
|
čitano: 2.044
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
MySQL: pronađi preklapanje u vremenskom periodu.

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

All software has bugs.Any developer who claims that his or her software is always bug-free is living in a fantasy world.
Poruka je uređivana zadnji put uto 22.9.2015 17:44 (Nix).
Moj PC  
0 0 hvala 0
10 godina
neaktivan
offline
MySQL: pronađi preklapanje u vremenskom periodu.

Potvrdu rezervacije zapiši na nivou dana.

Nakon toga... kod novog zahtjeva za rezervaciju lako provjeriš da li u traženom periodu postoji status 1.

 

 

 

 
0 0 hvala 0
17 godina
offline
MySQL: pronađi preklapanje u vremenskom periodu.

OK, rješenje za opciju 1 je ovdje  http://sqlfiddle.com/#!2/dd9259/3  nemam pojma što sam ranije komplicirao 

All software has bugs.Any developer who claims that his or her software is always bug-free is living in a fantasy world.
Moj PC  
1 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice