NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Patrik Řepa
Člen
Avatar
Patrik Řepa:30.12.2017 1:28

Čaute borci, mám do školy udělat úkol : rezervační systém na úřadě. Podmínka je minimálně 6 tabulek, které jsou provázané. Jiné podmínky nejsou a víc k tomu nevím. Pouze téma a 6 tabulek. Zatím jsem vytvořil databázi viz obrázek. tabulka WorkSchedule určuje, který zaměstnanec, v jaké kanceláři, a kdy má službu. Nevím jestli je dobré mít tabulku pouze pro datum, ale nevěděl jsem, jak to jináč vyřešit. Rezervace klienta by šla vyřešit pomocí 3 - 4 tabulek, tak jsem musel také zakomponovat zaměstnance, abych se dostal aspoň na těch 6 tabulek. Mohl by mi někdo prosím říct, co je zle, jak by se to dalo vyřešit lepším způsobem, popřípadě nějaké vylepšení ?? Děkuji mnohokrát.

 
Odpovědět
30.12.2017 1:28
Avatar
Hando
Člen
Avatar
Hando:30.12.2017 2:55

Ahoj.
No, mně se to zdá takový divně zamotaný. Chápu, že "rozkaz zněl jasně, méně než 6 tabulek za žádnou cenu", ale z tvého řešení některé věci nevyčtu (třeba čas, kdy je pracovník k dispozici - vlastně úřední hodiny, ale možná jen špatně koukám - jsou 3 hodiny ráno). DateLists a TimeLists jsou podle mě naprosto zbytečné, protože od uložení takových údajů jsou přeci sloupečky s vhodným datovým tipem (jeden 1 sloupeček datetime).

Asi bych to řešil takto (tabulky):
1.) zaměstnanec - není o čem
2.) klient - taktéž
a dále už se to dá různě úpravovat:
3.) obor_služeb (třeba občanky, soc./zdrav., práce...)
4.) zaměstnanec_pra­covní_doba (neřešme pauzy na oběd, máme víceméně fixní počet sloupečků, tak to asi není nutné řešit extra složitě, klidně by to mohlo být i v tabulce zaměstnanec)
/ tady stojí za úvahu, že by to měla být asi pracovní doba oboru služeb, ne zaměstnance.
5.) zaměstnanec-obor_služeb
6.) rezervace:
ukládám obor, datum + čas od klienta -> (je volná kapacita? ano-uložím klientovu volbu : ne-nabídnu nejbližší volný čas - můžu pracovat např. s 15minutovými bloky), dále ukládám klienta a pracovníka (pokud není nikdo volný, nabízím jiný čas, pokud někdo volný je, zapíšu klidně dle náhodného výběru a už volný není :) ).

Aktuálně mě nenapadá žádný dotaz, který by nešel rozumně položit. Samozřejmě se to dá ještě zkomplikovat a tabulky početně namnožit. Někoho dalšího určitě napadne i jiné řešení. Já se to snažím brát z pohledu občana, co jde na úřad.
1.) vím, co chci - vyberu si obor služeb
2.) vím, kdy tam chci jít
3.) může/nemusí být volno - dostanu ev. nabídku termínu
4.) dokončím registraci - mohu dostat třeba nějaký kód, kterým se prokáži nebo zadám při tisku pořadového lístku.

Editováno 30.12.2017 2:55
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
30.12.2017 2:55
Avatar
Patrik Řepa
Člen
Avatar
Odpovídá na Hando
Patrik Řepa:30.12.2017 14:51

To, kdy je pracovník na pracovišti mám v tabulce TimeLists. Kde mám jen hodnoty 8:00, 8:15, 8:30 .... 13:45. A Na pracovišti je každý pracovní den, ty datumy jsou vygenerované v tabulce DateLists. Je to asi blbost ukládat do jedné tabulky jen datum a čas. Ale šel jsem tou, pro mě, nejednoduší cestou :) Díky za pomoc, tak to zkusím překopat :)

 
Nahoru Odpovědět
30.12.2017 14:51
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.