Forum » Programiranje » Shranjevanje časovnih intervalov
Shranjevanje časovnih intervalov
gufy123 ::
Pozdravljeni
Lotil sem se izdelave ene strani, kjer moram nekako shraniti časovne intervale v bazo. To si lahko predstavljate na primer kot zasedenost hotelske sobe. Delam v PHP in mySql, vprašanje pa je naslednje: kakšen je najbolj primeren način shranjevanja teh intervalov v bazo. Prikazovali se bodo na nekem koledarju.
a) Naj imam tabelo z datum_od in datum_do ?
b) Naj v tabelo shranim vse datume med datum_od in datum_do? To bi bilo verjetno še najbolj praktično zaradi preverjanja zasedenosti pri dodajanju novega intervala (soba ne more biti 2x zasedena).
c) kaj drugega?
lep pozdrav
Lotil sem se izdelave ene strani, kjer moram nekako shraniti časovne intervale v bazo. To si lahko predstavljate na primer kot zasedenost hotelske sobe. Delam v PHP in mySql, vprašanje pa je naslednje: kakšen je najbolj primeren način shranjevanja teh intervalov v bazo. Prikazovali se bodo na nekem koledarju.
a) Naj imam tabelo z datum_od in datum_do ?
b) Naj v tabelo shranim vse datume med datum_od in datum_do? To bi bilo verjetno še najbolj praktično zaradi preverjanja zasedenosti pri dodajanju novega intervala (soba ne more biti 2x zasedena).
c) kaj drugega?
lep pozdrav
Arto ::
Odvisno od tega, kaj ostalo še rabiš. Lahko bi imel npr. tabelo oblike
hotel_id | room_number | date_from | date_to
Pomoje bi blo tko čis kul.
hotel_id | room_number | date_from | date_to
Pomoje bi blo tko čis kul.
gufy123 ::
Ma nič ekstra ne rabim. Prikaz koledarja z zasedenostjo. Pa pri vnašanju mora seveda bit kontrola, da soba še ni zasedena, ko želiš nekaj vnesti. Kakšen bi bil v tem primeru query za to kontrolo?
ales85 ::
Lahko zapišeš vse zasedene dni, lahko pa v stavku izračunaš kateri so zasedeni in to primerjaš
EDIT:
Če nimaš tabele sys_ints jo pa narediš in vstaviš cifre od 0-9 (torej 10 vrstic) samo en stolpec.
SELECT zacetni_datum + INTERVAL t.i*100 + u.i*10 + v.i DAY AS Date FROM sys_ints AS t JOIN sys_ints AS u JOIN sys_ints AS v, WHERE ( t.i*100 + u.i*10 + v.i ) < (DATEDIFF(koncni_datum, zacetni_datum)+1)
EDIT:
Če nimaš tabele sys_ints jo pa narediš in vstaviš cifre od 0-9 (torej 10 vrstic) samo en stolpec.
Zgodovina sprememb…
- spremenil: ales85 ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL rabim pomočOddelek: Programiranje | 1153 (988) | VelikiJanez |
» | SQL query za datume, ki se ne prekrivajoOddelek: Programiranje | 2634 (2265) | omnimint |
» | Statistika dijakov, pomocOddelek: Programiranje | 1802 (1286) | Mitja Bonča |
» | podatkovna bazaOddelek: Programiranje | 2068 (1889) | scarymovie |
» | Access in malo večja bazaOddelek: Programska oprema | 1082 (977) | |Luka| |