[ garrak @ 01.11.2008. 11:31 ] @
Razmišljam kako uopšte riješiti jednostavan booking sistem u PHP/MySQL kombinaciji.

Npr. imam tabelu u kojoj su apartmani i tabelu u kojoj su rezervacije.

Jedna rezervacija minimalno podrazumjeva da ima svoj id, ime gosta, id apartmana te datum dolaska i datum odlaska (tj. svoj početak i kraj).

Najviše me zbunjuju polja sa datumima. Ja bih to npr. riješio tako da human friendly datume pretvaram u unix vrijeme (br. sekunda od 1970.god.) i kao integere trpam u tablicu. Onda mogu lako odrediti trajanje rezervacije (odlazak minus dolazak)?

Postoji li neko bolje riješenje?

Kako najbolje riješiti da je nemoguće kreirati rezervaciju (za isti apartman) u pomenutoj tablici ako već postoji rezervacija koja zauzima taj ili dio traženog intervala vremena?

Ovo sa vremenskim intervalima mi je prilično zbunjujuće. Imam neku ideju kako bi moglo funkcionisati ali bih volio čuti od iskusnijih ljudi.

Hvala puno

Pozdrav!
[ centaur @ 01.11.2008. 16:24 ] @
Skoro sam radio neki booking sistem, ne za apartmane vec za neke ture, ali je to prilicno slicno.
Ti imas malo laksi posao :)
U principu moze da prodje i sa dve tabele, apartmani i rezervacije.
Ja bih licno u tabeli rezervacije drzao samo podatke o rezervaciji a podatke o gostima bih drzao u posebnoj tabeli.
Na taj nacin bi ti ta tabela sa rezervacijama bila manja i brza, a trebace ti cesto da "cesljas" po njoj.
Podatke o datumima sam belezio kao int, tj kao ts.
Nemam pojma kako si osmislio da se vrse rezervacije, ali sprecavanje rezervacije jednog apartmana za isti vremenski period je prilicno trivijalno.
Pre nego sto upises rezervaciju, proveris da li je u tom trenutku taj apartman slobodan :)
To je ovako generalno, ako imas neko konkretno pitanje, pitaj.


[ garrak @ 02.11.2008. 11:10 ] @
Podaci o gostima naravno u posebnu tabelu, samo id gosta u tblRezervacija.

Sad malo razmišljanja na "for dummies" nivou :)
Provjera da li je apartman slobodan u nekom trentku bi ustvari značilo da treba provjeriti je li slobodan u određenom periodu.
Periodi kao takvi ne postoje u tablici nego ih kreiramo od 'dolaska' i 'odlaska'.

Nova rezervacija ima svoj 'dolazak' i 'odlazak'. Ja bih to npr. provjerio tako da prvo selectam ima li već neka rezervacija takva da 'dolazak' nove r. pada između njezinog 'dolaska' i 'odlaska' pa ako nema onda ima li neka r. da 'odlazak' nove pada između njezinog 'dolaska' i 'odlaska'. S tim da se 'dolazak' nove može poklapati sa 'odlaskom' postojeće jer se radi o istom danu kad se gosti smjenjuju. Ako nema podudaranja onda bih insertao novu.

Ovakav koncept mi izgleda malo traljav, ne znam kako bi se server ponašao sa ovakvim code-om u situaciji kad ima 100 000 zahtjeva u sekundi?

Postoji li neki pametniji/efikasniji način?
[ centaur @ 02.11.2008. 23:14 ] @
Ne vidim zasto bi to bio traljav koncept.
Koliko ja ovako vidim, tebi treba jedan count query, koji je sam po sebi prilicno brz.
Jos ako dodas index-e gde treba, to nece biti problem.
Sad, kako bi to bilo sa 100 000 zahteva u sekundi, nemam pojma, nikad nisam radio sa tolikim opterecenjem :)

[ dakipro @ 03.11.2008. 08:38 ] @
I meni se koncept cini ok, samo mene sad zivo zanima za sta pravis taj sistem kad ocekujes 100000 poziva u sekundi??
Jel to nesto za las-vegas, ili abudabi, ili area 51? :)
Salu na stranu, ali stvarno mozes li nagovestiti makar za sta (koju delatnost, oblast sveta) ocekujes toliko poziva?
[ garrak @ 03.11.2008. 11:19 ] @
Ma tipično pitanje čovjeka koji nema dovoljno praktičnog iskustva u stvarnom poslu. Zamislim kako nešto riješiti pa se stalno pitam "je li to moglo bolje i efikasnije". :-)

Što se tiče broja zahtjeva, 100K sam lupio, onako. Mislio sam ustvari na neko maksimalno opterećenje servera pri kojem neki 'traljav' code dodatno usporava aplikaciju ili puca totalno.

Radio sam u turizmu (hrvatsko primorje), zasad ne kao IT stručnjak ali sam vidio više puta za vrijeme špic sezone da web aplikacija puca pa kolege u IT sektoru prerađuju kod aplikacije, cacheing i sl. Prilično stresne situacije. Ne kažem da je bilo baš sve do aplikacije, moguće da je i hosting nešto muljao, ali u pitanju je MUCHO reklamiran i posjećen sajt :-D

Ovo o čemu razmišljam (booking sistem) još nije odlučeno da će se uopšte raditi. Radi se o maloj turističkoj agenciji.


Hvala Vam za pomoć
[ barons @ 03.11.2008. 13:07 ] @
da li je neko od vas ko je radio za hostele/hotele zna kako se hotel ubacuje u sistem internacionalnih rezervacija nopr ovaj sajt http://www.hostelseurope.com
Hocu da pitam kako kada neko vam odradi rezervaciju tu onda da se i vasa baza azurira ?