abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 11:55 | Upozornění

    V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."

    Ladislav Hagara | Komentářů: 3
    dnes 09:55 | IT novinky

    Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.

    Ladislav Hagara | Komentářů: 11
    dnes 09:44 | IT novinky

    Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.

    Ladislav Hagara | Komentářů: 10
    dnes 09:33 | Nová verze

    Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    dnes 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    dnes 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    včera 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 8
    včera 16:33 | Zajímavý software

    Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.

    ❗Červivý Hřib krade❗ | Komentářů: 4
    včera 16:22 | Upozornění

    Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).

    Ladislav Hagara | Komentářů: 10
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2818 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Tvorba databáze pro jednoduchý skladový program

    19.9.2013 14:47 Marty_Burns
    Tvorba databáze pro jednoduchý skladový program
    Přečteno: 3469×
    Dobrý den, potřeboval bych si s pomocí PHP a MySQL napsat jednoduchý program pro skladovou evidenci a chtěl bych poprosit zkušené programátory o radu jak tu tvorbu pojmout. Pro každou položku ve skladech potřebuju mít tabulku, která bude zaznamenávat pohyby té konkrétní položky. Dále potřebuji zaznamenávat příjemky a výdejky, tak aby byly propojeny s jednotlivými tabulkami zboží.

    Jen stále nevím jak to pojmout jestli opravdu vytvořit pro každé zboží samostatnou tabulku v databázi nebo číslo toho zboží jen zachytávat v tabulce příjemek a výdejek a příslušnou tabulku pak sestavit PHP skriptem na požádání.

    Docela si říkám, že v momentě kdy tam budu mít 50 000 pohybů by mohlo trvat než od sebe všechny ty příjemky a výdejky odečte a sestaví kartu(tabulku) zboží.

    Proto bych se chtěl zeptat co je pro MySQL a PHP horší varianta mít v tabulce 50 000 pohybů, které bude skript neustále procházet a odečítat nebo mít 1000 tabulek v databázi a na každé jen několik řádků? Na jaké problémy bych mohl při jednotlivých řešeních narazit?

    Budu velmi rád a vděčný za jakoukoliv připomínku k tématu.

    Řešení dotazu:


    Odpovědi

    Tarmaq avatar 19.9.2013 15:25 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Moc nechapu proc by mela kazda polozka mit svoji vlastni tabulku. Nechces spis mit Tabulku obsahujici polozky a ke kazde z tech polozek pridavat do nejake jine tabulky jeji atributy? Myslim, ze pokud to spravne navrhnes, mel bys mit ohdadem tak 10-20 tabulek (nevim co vsechno je treba evidovat). Btw nebylo by lepsi pro dane ucely sahnout uz po nejakem hotovem reseni? Urcite uz nejaky takovy system existuje..
    Don't panic!
    19.9.2013 16:24 Marty_Burns
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Děkuji za reakci, možná přemýšlím úplně špatně. Jde o to abych byl na požadavek schopný ke každé položce na skladu sestavit nějakou podobnou tabulku: | Množství | Kč | Datum|Doklad|Obsah|Příjem|Výdej|Zásoba|Příjem|Výdej|Zásoba| 18.9. P001 nákup 5 5 50 50 19.9. V002 prodej 3 2 30 20

    Dále tabulka příjemky a výdejky: ID | Typ | Datum | Doklad | Číslo zboží | Množství | Cena | 001 P 18.9. Dodák01 Zboží1 5 50 002 V 19.9. ......

    Kdybych teda měl všechno zboží v jedné tabulce a k tomu jen množství a průměrnou cenu tak na požadavek sestavení tabulky zboží, že by pročesal ty příjemky a výdejky a zobrazil to jako ta horní tabulka....Myslíš že je to teda lepší řešení, než pro každé zboží sestavit tabulku zvlášť?

    Hotových řešení je samozřejmě mraky, ale chtěl bych to zkusit.
    19.9.2013 16:30 Marty_Burns
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Úplně se mi ty náčrty tabulek rozesraly, ale další uživatelé mě již dole navádějí, že mnoho tabulek je úplný nesmysl.... Děkuju
    Řešení 1× (Marty_Burns (tazatel))
    19.9.2013 15:34 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Rozhodně méně tabulek. Zakládat tabulky dynamicky pro každé zboží nedává moc smysl. Prostě uděláš tabulku pohybů a jeden sloupec bude odkaz na tu danou položku. Až budeš chtít z toho dostat věci jako počet pohybů za časové období, atd. tak to máš hezky v jedné tabulce a jednoduše to z ní dostaneš. 50000 záznamů na jednu tabulku je pořád docela sranda. Navíc ty těch 50k položek nebudeš procházet scriptem, ale napíšeš SQL dotaz tak, aby ti vrátil jen to co chceš.
    19.9.2013 16:34 Marty_Burns
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Moc děkuju, pomohl si mi.
    19.9.2013 16:04 j
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Mezi nama ... ty chces psat sklad a nemas paru o tom, jak funguje SQL?

    select sum(pocet) from pohyby where zbozi = XYZ ... 10M zaznamu, cas trvani 0,3s ...
    19.9.2013 16:42 Marty_Burns
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Tak základní dotazy umím, ale jak přesně funguje SQL a jak moc náročné pro server je podle parametru WHERE vyhledávat ve velkém množství položek jsem neměl páru. Je to pro mě spíš cvičení, ale kdyby to fungovalo určitě bych to testoval pro svou potřebu. Díky
    19.9.2013 17:12 j
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    => o SQL defakto nic nevis.

    Podivej, vyber zaznamu z linearni tabulky je pro SQL zcela trivialni uloha - specielne, pokud jsou na spravnych polich indexy. Skoro stejne trivialni je vyber z vice jednoznacne provazanych tabulek (nikoli pres textovy pole samo ...).

    Samo v okamziku, kdy zacnes resit vsemozne podminky vazeb, budes prohledavat textovy pole ... tak casova narocnost dotazu roste. Ale i u milionu zaznamu se bavime maximalne o desitkach vterin (nemyslim si, ze bys dokazal napsat tak slozity query, aby trvalo dyl).

    => pro tvy ucely
    1) tabulka hlavicek ... 
    id_pohybu, cislo_dokladu, ... typ (vydejka/prijemka)
    2) tabulka radku
    id_pohybu, id_radku, id_zbozi, pocet (idealne pro prijemky trebas kladnej, pro vydejky zapornej nebo opacne)...
    3) tabulka zbozi
    id_zbozi, ...
    
    Samo, nevim kam az chces zajit, dal muzes mit tabulku dodavatelu/odberatelu, kterou privazes na hlavicku ...

    Priklad:

    Vyber vsech dokladu s nejakym zbozim zacinajicim na ...
    select distinct cislo_dokladu from hlavicky
    left join radky on radky.id_pohybu = hlavicky.id_pohybu
    left join zbozi on zbozi.id_zbozi = radky.id_zbozi
    where zbozi.nazev like "Prkno%" 
    
    Řešení 1× (Marty_Burns (tazatel))
    19.9.2013 16:11 Kit
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    V principu stačí dvě tabulky. Tabulka pohybů (příjemek a výdejek) a tabulka stavů položek. Z PHP přidávat záznamy do tabulky pohybů a pomocí triggerů aktualizovat tabulku stavů.
    19.9.2013 16:52 Marty_Burns
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Děkuju, s triggery jsem se při mém amater programingu ještě nesetkal, ale snad se s tím popasuju.
    19.9.2013 16:54 j
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Trigger je to nejhorsi, co muzes databazi udelat ... ;D, neni lepsi zpusob, jak dokonale zabit vykon.

    => ano, je logicky si drzet stav nekde u zbozi, a neselectovat ho ze vsech pohybu (coz by slo taky), ale dela se to tak, ze v ramci jedny transakce vlozis (insert) zaznam do pohybu + aktualizujes(beznej update) pole stav. Kdyz se neco podela, nebude ani jedno ani druhy.
    19.9.2013 17:09 Kit
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Trigger vlastně není nic jiného, než transakce, do které insertem vložíš záznam o pohybu a aktualizuješ pole stav. Když se něco podělá, nebude ani jedno ani druhý.

    Rozdíl je akorát v tom, že transakce je v aplikaci a trigger v databázi. Trigger je výkonnější a šetrnější k prostředkům databáze i aplikace.
    20.9.2013 12:28 axel
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Trigger neni obecne vykonnejsi ani setrnejsi, zalezi na konkretnim scenari. Typicky pro velke objemy dat byvaji triggery problem, protoze neumoznuji rozumnou optimalizaci. Co mi na triggerech ale vadi vice je odtrzeni logiky od aplikace. To ze je kus "v aplikaci" a kus v databazi mimo jine znamena, ze se neda rozumne logovat, trasovat, jednotne testovat... Z programatorskeho hlediska je to klasicky side effect se vsemi nevyhodami (a samozrejme i vyhodami, pokud nekdo nejake vidi). Osobne nenavrhuju logiku do triggeru vubec. Nerikam, ze to nema sem tam smysluplna vyuziti, ale napr. ve vicevrstve architekture to podle mne nema co delat.
    Tarmaq avatar 20.9.2013 15:48 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    ja to vidim uplne naopak. Trigger mi umoznuje zaridit, aby se pohled choval jako relace, tj. abych do nej mohl vkladat, upravovat ho a triggery zaridi, aby se data rozsoupala do prislusnych tabulek z kterych se pohled sklada.. Nevim proc bych toto mel zarizovat na strane napr. PHP
    Don't panic!
    20.9.2013 15:58 Kit
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Jeden důvod znám: Dotyčný umí PHP lépe než SQL a počítá s tím, že s těmi daty bude pracovat pouze jeho PHP aplikace :-)
    20.9.2013 17:07 axel
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    PHP neumim vubec a SQL umim sice dobre, to ovsem pro psani triggeru moc potreba neni:-) Modifikovat (coz neni totez co "pracovat") data opravdu typicky muze pouze "moje aplikace", respektive jeji k tomu urcena vrstva, respektive specificka vrstva tvorici rozhrani vuci ostatnim systemum. Jinak by se na enterprise urovni nedalo efektivne zamykat, cachovat, nahravat velke objemy dat, detailne ridit opravneni atd. Predstava jakesi chytre databaze, ve ktere se vrta spousta aplikaci, ktere o sobe nevedi, a ona vsechno udrzi konzistenti (ne jen technicky, ale i "byznysove") je trochu sci-fi. Umisteni logiky do databaze prestane cloveka bavit nejpozdeji ve chvili, kdy ma do ni pribyt pouziti messagingu, overeni opravneni ve vzdalenem systemu, volani webservices atd. Pro nektere systemy toto hrozi, pro jine treba nehrozi. Co tvrdim je, ze pokud potrebuju vicevrstvou architekturu (opravdu potrebuju, ne jen ze ji mama rad a pouzivam ji vsude i na miniprojekty), tak tam mam vrstvu aplikacni logiky a ta by se mi nemela prolinat s datovou ve forme triggeru.
    20.9.2013 16:45 axel
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Triggery nad pohledy jsou specificka zalezitost. Zasadni prinos je urcite pro technologie poskytujici abstrakci nad tabulkami (formular si mysli, ze je nad tabulkou, generuje do ni inserty/updaty a je odstinen od datoveho modelu). Jinak mohu analogicky pouzit napr. stored proceduru nebo proceduru v aplikaci, naprogramovat to musim tak jako tak a v triggeru jsem nejvice omezen co do moznosti. Napriklad nainsertovat pres trigger nad pohledem vetsi objem dat je obvykle velky prusvih.
    20.9.2013 16:58 Kit
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Obvykle je velký průšvih, pokud se to někdo snaží šmudlit v PHP, některá z operací se nezdaří a my netušíme, která data tam už jsou a která ne.
    20.9.2013 17:11 axel
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    To je nejaka posedlost tim PHP? Ja mam o nem pouze zakladni predstavu a mozna nespravedlive ho nepovazuju za vhodne pro veleke projekty, ale programovat dobre nebo spatne se da snad v zasade ve vsem:-)
    20.9.2013 18:28 Kit
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    PHP v tom může být nevinně. Stačí nějaká chyba ve vstupních datech, které DB odmítne.
    20.9.2013 17:07 Tomáš
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program

    Mám tu jednu takovou aplikaci. Je v ní přes 2200 triggerů. Každý druhý zapisuje pokoutně do nějaké tabulky a jejich spouštění je jako neřiditelná lavina. Trasování je peklo. Dopadová analýza je inferno na druhou. Nějaké moduly a jasně definovaná rozhraní mezi nimi? Na takový luxus zapomeňte.

    Trigger je dobrá věc, ale jen ve specifických případech. Pokud máte aplikaci v rukou ( máte zdrojový kód, který můžete libovolně upravovat ), tak lepší se triggeru vyhnout. Ideálně je pokud se vám podaří udržet data a logiku separátně. S logikou pak můžete v rámci nasazení aplikace výrazně lépe manipulovat než s daty.

    20.9.2013 17:22 axel
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Presne tak, takovou aplikaci bohuzel take mame. Diky version managementu lze pekne sledovat, jak tyto veci vznikaji nejprve jako nenapadna "rozumna" vypadajici zkratka (zavolam jen insert a ono se mi to spravne doplni do dalsich tabulek) a konci jako bazina plna v zasade globalnich promennych, ktere ridi chovani jednotlivych triggeru podle toho, v jake situaci se zrovna volaji - pri davkove aktualizaci ne, pri aktualizaci z formulare ano, ale jen pokud se nejedna o zmenu rodneho cisla a neni to z pobocky, protoze tam to je cele slozitejsi atd. Nikdo nema jistotu, kdy se mu co zavola, takze do toho radeji nikdo nesaha (testovatelnost je blizka nule) a pro novou funkcionalitu casto vznika nejaka postranni cesticka, ktera to cele obchazi...
    Tarmaq avatar 20.9.2013 19:06 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program

    Ja jsem ale nerekl, ze taham business logiku do triggeru. Samozrejme tyto popisovane vyhybky tam nepatri. V triggeru pouze zarizuju, aby se data propagovala tam kam maji, protoze to zadny SQL server neumi sam o sobe, z jednoducheho pohledu obsahujiciho par joinu, rozpoznat zaridit. Take netvrdim ze je vhodne, aby ten trigger soupal data nekam uplne jinam. Jen do tabulek, z kterych se sklada view nad kterym je (samozrejme zapis do nejake logovaci tabulky atp. tam byt muze)

    Pokud je databaze vhodne navrhnuta, nestava se ze by se clovek podivoval pri chybe co se to deje a musel to nejak slozite analyzovat, pokud je v DB poradek.

    Predpokladam ze tabulky v tve databazi obsahuji semtam nejaky nullovatelny sloupec, je to tak?

    Don't panic!
    22.9.2013 17:53 axel
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Uvadis pouze triggery nad pohledy, coz je mensinova zalezitost. Nad tabulkami by se to pak tedy analogicky omezilo na jednu tabulku? Pak by tam opravdu prilis slozita logika byt nemohla, nejspis nejaka validace, a nemam s tim vubec problem (ovsem nedelame to tak, predevsim kvuli spatne vykonnosti pri zpracovani vetsiho mnozstvi dat). Jak je databaze navrzena nema vliv na to, zda se pri chybe nekdo "podivuje" a uz vubec na to, zda je chybu treba slozite analyzovat. Ano tabulky v me databazi obsahuji nullovatelne sloupce, souvisi to nejak s triggery?
    20.9.2013 19:53 Tomáš
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program

    Trigger rozhodně není transakce. Trigger se základním ACID transakčních DB nemá trigger vůbec nic společného. ( Na rozdíl od transakcí, které základem jsou. )

    Výkonnost kódu (pro DB orientované aplikace) převážně závisí na tom kolik musí transakce udělat I/O operací s diskem. Rozdíl, zda kód běží v triggeru nebo PL/SQL nebo PHP, je zanedbatelný. Pro představu přístupová doba k datové větě (s lidským měřítkem × 1e9):

    1. vylovení věty z cache na CPU = 1 ns ~ v lidském měřítku 1s
    2. vylovení věty z paměti DRAM = 65 ns ~ v lidském měřítku 65s ~ 1 min.
    3. vylovení věty z pevného disku = 2ms (seek time špičkového disku) ~ v lidském měřítku 23 dní, tady musíme trošku přidat protože disk pracuje blokově a průměr bude výrazně lepší. Takže řekněme 10x lepší číslo. Tedy cca 2 dny.
    4. vylovení řádku přes sít z paměti vzdáleného stroje = 0.1 ms ~ lidském měřítku cca 1 den. Tady bychom taky mohli ubrat. Do síťového paketu se vejde taky více jak jeden řádek.

    Ale nic si z toho nedělejte, názory jako Váš slyším i od seniorních vývojářů a IT architektů. Prý rozdíl mezi během triggeru a PL/SQL procedury i reálně změřili. A když se zeptám jak eliminovali diskovou cache, tak tou se nikdo nezabýval. Je to občas dost síla.

    23.9.2013 08:51 j
    Rozbalit Rozbalit vše Re: Tvorba databáze pro jednoduchý skladový program
    Jak tu nekdo zminil, trigger nema s transakci nic spolecnyho, a muze se podelat zcela nezavisle. A co se vykonu tyce, zasadni problem je predevsim v tom, ze trigger se musi vyhodnocovat VZDY pri LIBOVOLNE akci s tabulkou. I kdyz trebas nakonec nic neudela.

    Minimalne se databaze musi podivat na typ akce (insert/update) a porovnat, zda na tu akci je trigger povesen. Pokud takovych akci probihaji tisice ... a z toho trebas jen 1% vyzaduje akci triggeru ...

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.