DB struktura-rezervace
Honza Pazdziora
adelton na informatics.muni.cz
Pondělí Srpen 11 18:37:19 CEST 2003
On Sun, Aug 10, 2003 at 05:00:36PM +0200, Pavel Kysilka wrote:
>
> tabulka relace hotel-pocet_volnych_mist-casovy_interval-cena-stav
> -id_hotelu
> -id_typ_pokoje
> -pocet_volnych_mist
> -volne_od
> -volne_do (pripadne jak dlouho volne)
Prijde mi to zbytecne komplikovane a nevidim, jakou vyhodu reseni pres
intervaly v tomto pripade misto jednotlivych dnu prinasi, s vyjimkou
uspory mista.
> -cena
Nemuze se stat, ze je cena funkci typu pokoje a data?
> -stav (obsazeno, rezervovano,volne)
Tady ale asi stejne budete potrebovat i informace o tom, kdo
rezervoval, co, na jak dlouho. Pokud ne dnes, tak za chvili urcite.
> doslova je potreba zajistit, aby pro kazdy hotel bylo znamo kolik ma v
> danem case volnych pokoju, za kolik a jaky typ pokoje.
> zaroven se dane pokoje v hotelu mohou objednavat.
A ta objednava ma byt zadana jak? Jenom ano/ne?
> konkretni udaje o kazdem pokoji z hotelu v databasi nejsou.
>
> doplnujici podminky: vyhoda reseni pres intervaly se muze vyuzit, ale
> i nemusi. nekdy se zadava rozdilna cena pro dany pokoj na kazdy den.
> nekdy muze byt cena stejna po dobu par mesicu.
>
> soucasny stav database:
> pominu, ze puvodni autor a jim napsana aplikace vytvorili
> uz asi 250 tabulek.....
To je povzdech nebo indikace kvality toho autora?
> co se tyce obejdnavani pokoju, je to reseno tabulkou s touto strukturou
>
> - konkretni_den ( co den, to cislo.......)
> -id_hotelu
> -typ_pokoje_1
> -pocet_volnych_pokoju_typ_1
> -typ_pokoje_2
> -pocet_volnych_pokoju_typ_2
> .........
> -typ_pokoje_n
> -pocet_volnych_pokoju_typ_n
Tady je samozrejme problem s tim, ze tady neni videt cena. Nebo cena
vyplyva z nejakeho registru
den_od
den_do
typ_pokoje
cena
? Kazdopadne jakmile bude potreba mit n+1 typu pokoje, tak nastane
problem.
> mnou navrhovane reseni:
> napadlo me udelat reseni s relacemi pres intervaly.
> relaci je mineno: hotel-pocet_volnych_mist-casovy_interval-cena-stav
> ^^_ uvedeno na zacatku mailu
>
> ale toto reseni je narocnejsi na spravu. ale to by se dalo resit pres
> procedury v PgSQL ( database, na ktere to pobezi ).
>
> nastava, zde ale jeden problem. a to je fragmentace intervalu ( neznam
> lepsi termin). jak se postupne pokoje objednavaji, vznika cim dal tim
> vice intervalu (relaci). cilize by se to muselo (mohlo ), nejak vzdy v
> noci prepocitat, aby se sloucily do jednoho intervalu relace se
> stejnymi vlastnostmi. ale i toto je resitelne.
>
> kazdopadne se mi jevi mnou navrhovane reseni, jako nejlepsi a
> nejvice systemove.
> je to lepsi, nez mit pro kazdy den jeden zaznam.
Mistem v databazi ano, jinak si nejsem jisty. Predpokladejte, ze
potrebujete zjistit, zda od 4.9.2003 do 11.9.2003 jste schopen udelat
rezervaci dvou dvouluzkovych pokoju typu Q za cenu P a tri
jednoluzkovych typu R za cenu S. Pokud to budete mit v databazi
po dnech, tak to udelate jednim vnorenym dotazem s par agregovanymi
funkcemi. Pokud to budete mit v databazi modelovane jako
intervaly, ktere se muzou nejruznejsim zpusobem prekryvat a tak.
> dotaz:
>
> pokud ma nekdo lepsi reseni, dejte vedet v konferenci. urcite bych
> rad videl i jina a predevsim lepsi reseni.
>
> mozna je mnou navrhovane reseni prilis narocne na vypocty (zejmena
> selecty). zde by mne zajimalo, zda ano ci ne.
Navrhuji zvazit, kolik budete mit hotelu a kolik pokoju (typu) a na
jak dlouho dopredu beudete rezervovat. Protoze pokud byste mel mit
misto 365 zaznamu pro jeden typ pokoje 30 intervalu, tak se uz takova
uspora mista ani nevyplati, mely by-li byt tan tim operace nejake
komplikovane.
Kazdopadne ale do celkoveho obrazku chybi nekolik informaci:
- kdo a jak tam bude informace vkladat?
- je to primarni system, nebo jenom frontend pro spousty jinych
systemu?
- jak je to s temi cenami, k cemu se tam ty ceny vkladaji, jak se
muzou menit?
- pokud je to sekundarni system, znamena to, ze jednou denne do neho
nekdo posle informace typu "a od pokoje Q mame v hotelu H45 na
5.9.2003 jeste 4 za 700", nebo budou chodit zmeny typu "prodali jsme
dva pokoje typu Q na 5.9.2003 a u zbyvajicich zvedli cenu ze 650 na
700"?
Teprve na zaklade znalosti toho, jak ma cela ta vec komunikovat
s okolim, kde se tam berou data, odkud jdou a kam, bych se odvazil
delat nejakou datovou analyzu. Ono z toho totiz vyplyne, co budete
potrebovat o tech pokojich drzet.
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
Only self-confident people can be simple.
Další informace o konferenci Databases