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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
včera 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
včera 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 3
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 801 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama
Štítky: není přiřazen žádný štítek

Dotaz: Umbrello vazba 1:1

14.3.2014 13:49 Kloban | skóre: 13 | Brno
Umbrello vazba 1:1
Přečteno: 569×
Ahoj, navrhuju si ERD v programu Umbrello a nějak tam vidím vazbu jen 1:n. Vazby n:m a 1:1 mi tam chybí. Je možné je nějak do diagramu přidat?
Díky Dan

Odpovědi

14.3.2014 20:10 Roslav | skóre: 6 | blog: mamblog
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Vyselectuj si ralation cez sipku, potom dvojklikom otvor properties a v dialogu v podmenu "Roles" mas "Multiplicity"
Hmmpf... Niečomu tak deterministickému ako počítače sa jednoducho nedá veriť.
14.3.2014 20:42 Kloban | skóre: 13 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Tím ale nastavím jen popisky. Šipka má stále na jedné straně vidličku.
14.3.2014 21:47 Roslav | skóre: 6 | blog: mamblog
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Obavam sa, ze to nebude mozne, dokonca aj v manualy maju priklad diagramu, kde boli kardinality vyriesene popiskami. Inak, 1:1 je neprirodzena relacia, co si pamatam z prednasky, co sme mali v skole pred tyzdnom, yevraj na take by sa mal architekt pozriet este raz, ci tam nie je chyba.
Hmmpf... Niečomu tak deterministickému ako počítače sa jednoducho nedá veriť.
14.3.2014 22:58 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Kardinalita 1:1 je v pořádku. To by byly špatně všechny číselníky, lokalizace programů a dokonce i normalizované tabulky v databázích.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 17.3.2014 14:41 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Není číselník náhodou 1:N?
Hello world ! Segmentation fault (core dumped)
19.3.2014 06:56 Kit
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
K jednomu klíči je jen jedna hodnota. 1:1.
18.3.2014 17:56 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Vztah 1:1 má smysl, pokud jsou dvě různé entity ve vztahu 1:1 (občan - občanka). Pak je mohu dát do dvou tabulek, takže budou moci vystupovat i nezávisle. Současně mám možnost snadno refaktorovat na vztah 1:N, pokud to okolnosti budou vyžadovat.

Třeba Propel s tím počítá http://propelorm.org/documentation/04-relationships.html#one-to-one-relationships
-- OldFrog
Josef Kufner avatar 18.3.2014 19:25 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Zrovna občan a občanka není moc dobrý příklad, neboť občan může mít občanek více (např. pokud jednu ztratí, tak dostane novou a ztracená bude i nadále vedena v databázi doplněna o informaci o ztrátě), ale i žádnou (občan nemá trvalý pobyt a chodí po ČR s pasem).

Relace 1:1 je velmi vzácná záležitost. Obvykle přítomnost takové relace bude ukazovat na nějakou chybu nebo zbytečné omezení. I když určitě se najde pár příkladů, kdy to bude dávat smysl.
Hello world ! Segmentation fault (core dumped)
18.3.2014 20:21 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1

Za prvé: U nás není povolené mít více občanek, a moje občanka se ne a ne ztratit. Jsme už ale velcí, takže to označovat vazbou 1:1 nebudeme.

Za druhé: 1:1 vazba při návrhu obvykle nevzniká (snad blob v oddělené tabulce v jiném tablespace/Db), ale může vznikat v budoucnu při rozšiřování bez zásahu do stávající struktury.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
18.3.2014 21:30 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1

Za prvé: U nás není povolené mít více občanek, a moje občanka se ne a ne ztratit. Jsme už ale velcí, takže to označovat vazbou 1:1 nebudeme.

Tady nerozumím - jak je to míněno?

Za druhé: 1:1 vazba při návrhu obvykle nevzniká (snad blob v oddělené tabulce v jiném tablespace/Db), ale může vznikat v budoucnu při rozšiřování bez zásahu do stávající struktury.

To je ono - k existující entitě mohu neinvazivně přidat další entitu. Pokud to není nadužito, je to IMHO docela elegantní.
-- OldFrog
18.3.2014 22:07 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Tady nerozumím - jak je to míněno?
Tak jak je to napsáno ;), ber jako fakt, že u nás může mít jeden občan jednu občanku a jedna občanka jednoho občana, nicméně vazba 1:1 není vhodná, protože je sice vyžadována, ale ne dodržována.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 19.3.2014 02:04 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Můžeš mít žádnou nebo jednu platnou občanku. Ale v databázi chceš mít i informace o již neplatných občankách, abys věděl, co se s nima stalo a že už neplatí (například v případě krádeže). Nebo naopak abys mohl ověřit, že nějaký starý záznam je pravdivý. Takže občanek můžeš mít u jednoho občana v databázi povícero, i když on bude mít v kapse jen jednu.
Hello world ! Segmentation fault (core dumped)
19.3.2014 08:07 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
OT:
(například v případě krádeže)
„Únos“ se tomu říká…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 19.3.2014 11:52 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
"Občanský průkaz byl unesen"?
Hello world ! Segmentation fault (core dumped)
19.3.2014 12:10 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1

Co sem pleteš jakýsi průkaz ;)

„Občanka byla unesena!“

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
19.3.2014 12:15 Kloban | skóre: 13 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
JO táááák. :-D :-D :-D To by mě nenapadlo.
19.3.2014 12:24 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Asi to bude regionem (či mnou), ale mně nenapadlo první vůbec to, o čem si OldFrog a Josef Kufner myslí, že píšou, a říkal jsem si proč to OldFrog píše tak divně a docvaklo mi to sice brzo, ale až zpětně po přečtení dalšího postu.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
18.3.2014 21:27 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Obvykle přítomnost takové relace bude ukazovat na nějakou chybu nebo zbytečné omezení. I když určitě se najde pár příkladů, kdy to bude dávat smysl.
Myslíte to tak, že vztah 1:1 se ve světě kolem nás příliš často nevyskytuje (a mělo by se vše modelovat jako vztah 1:N) anebo tak, že je vhodné dát vše se vztahem 1:1 do jedné tabulky?
-- OldFrog
Josef Kufner avatar 19.3.2014 02:01 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Nikde neříkám, že vše. Říkám, že to je neobvyklé a je to signál k zamyšlení, zda to je tak správně. Reálný svět a databáze spolu mají jen málo společného.
Hello world ! Segmentation fault (core dumped)
Josef Kufner avatar 19.3.2014 02:05 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
... a zrovna ten příklad s občankou je toho důkazem.
Hello world ! Segmentation fault (core dumped)
19.3.2014 10:51 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Právě ten příklad s občankou je dobrý - ukazuje zcela reálnou situaci, kdy se rozhoduji jak do databáze uložit občana a občanku a kdy mám chybný předpoklad, který musím později opravit.

Zprvu předpokládám, že každý občan má jen jednu občanku. Udělám tabulku občan a tabulku občanka příčemž občanka se bude odkazovat primárním (unikátním) klíčem na občana. Vznikne vztah 1:1.

Pak se dozvím, že občanek může mít ve skutečnosti občan více. Do tabulky občanka přidám nový klíč, který učiním primárním (unikátním), původní sloupec, který se odkazuje na občana nechám, akorát už nebude unikátní (na jednoho občana se může odkazovat více občanek). Vznikne vztah 1:N.

Jediné, co jsem musel upravit jsou klíče a v případné orm vrstvě getter a setter, kterým občanovi přiděluji občanku (nově musí akceptovat/vracet seznam).

Pokud bych dal všechny parametry občanky do tabulky občana, musím refaktorovat mnohem víc.

Na tom chci ukázat, že pro dvě různé entity jsou dvě tabulky se vztahem 1:1 vhodnější a flexibilnější než jediná tabulka s více sloupci a že se může hodit dekomponovat entitu na dvě entity a uložit je do dvou tabulek i případě, že to vypadá zprvu na evidentní 1:1 vazbu a máte třeba nutkání ji modelovat pouhým přidáním několika sloupců (tj. skalárních hodnot). Důvodem vhodnosti je právě to, že můžu snadno přejít ke vztahu 1:N (mimoto bude databáze sémanticky lépe odpovídat skutečnosti - občanka je něco jiného něž občan a můžou existovat i nezávisle).

Uvedená dekompozice je podle mě další možná geneze tabulek 1:1 (mimo rozšiřování databáze beze změn tabulek jak uvádí Šangala).

Otravuju s tím kvůli tomu, že nechci aby vznikl pro náhodného čtenáře dojem, že 1:1 je automaticky nějaká chyba, které by se měl vyvarovat (může to tak sice být ale také nemusí).

Nu a můj dotaz na vás se týkal právě toho, jestli byste to dával všechno do _jedné_ tabulky anobo zda říkáte "kdekoli mám _dvě_ tabulky ve vztahu 1:1 bych se měl rovnou zamyslet, zda tam nemá být spíše 1:N". Která varianta platí?

-- OldFrog
Josef Kufner avatar 19.3.2014 11:56 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Nikde jsem o přidávání sloupečků do jedné tabulky nemluvil. Celou dobu jde o to, že "kdekoli mám dvě tabulky ve vztahu 1:1 bych se měl rovnou zamyslet, zda tam nemá být spíše 1:N".
Hello world ! Segmentation fault (core dumped)
19.3.2014 12:30 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Ok, dík za upřesnění. S tím souhlasím.
-- OldFrog
19.3.2014 22:08 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Vidím to naopak: Kdekoli vidím NULL v neklíčovém sloupci, ptám se, zdali by tomu sloupci nebylo lépe v samostatné tabulce s relací 1:1.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 19.3.2014 22:17 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Nekomplikuje to zbytečně aplikaci okolo?
Hello world ! Segmentation fault (core dumped)
19.3.2014 22:39 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Zjednodušuje to updaty, stávají se z nich inserty. Zrychluje to vyhledávání. Dále je možné k nim přidat timestampy, ke každému takovému atributu zvlášť. Je možné udržovat i historické stavy, které jsou např. v personalistice dost důležité. Tím se to ovšem často změní na relaci 1:N.

Například trvalé bydliště vůbec nemusí být v základní tabulce o zaměstnanci, datum narození a rodné číslo také ne. Údaje o manželovi/manželce jsou také v samostatné tabulce. Zvyšuje to bezpečnost aplikace - všechny programy nepotřebují přístupy ke všem tabulkám.

Jak by to mohlo komplikovat aplikaci okolo? Naopak se spousta dotazů zjednoduší.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 19.3.2014 22:51 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Tyto příklady mi zní spíš jako dobře udělaná dekompozice. Adresy bych dal stranou tak nějak automaticky a udělal je jako obyčejné 1:N. Manžel/manželka bych řešil jako obecné M:N relace mezi lidmi, neboť by se mohly hodit i další vztahy (milenka).
Hello world ! Segmentation fault (core dumped)
19.3.2014 23:06 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Ale o dekompozici to celé je, ne?
-- OldFrog
20.3.2014 09:51 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Ano, je to o dekompozici. Osoba smí mít jen jedno trvalé bydliště, je to tedy relace 1:1. Přesto je vhodnější to nedávat do jedné tabulky, ale trvalé bydliště uložit do další tabulky s primárním klíčem té osoby.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 20.3.2014 12:35 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Pak se ale na takové schéma podíváš, uvidíš vazbu 1:1, zamyslíš se, zda to je opravdu správně a uvědomíš si, že v případě změny trvalého bydliště není úplně ideální zapomenout to staré, že vedle adresy trvalého bydliště se hodí mít i kontaktní adresu, což je ale svou strukturou stejná adresa, jen v jiném vztahu k dané osobě. A najednou je z 1:1 vazba 1:N, nebo i dokonce M:N.
Hello world ! Segmentation fault (core dumped)
20.3.2014 12:53 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Ano, nad tím jsem se už také zamyslel. Záleží na požadavcích.

Kontaktní adresa má sice stejnou strukturu, ale raději bych ji dal do samostatné tabulky, aby mi z toho nevzniklo EAV.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
20.3.2014 14:00 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
1+

Nicméně tím vzroste implementační náročnost - bude třeba vytvořit integritní omezení pro jednotlivé druhy adres (aktuální trvalé bydliště může být jen jedno). Navíc stejnou úvahu mohu provést prakticky na každou entitu (občan může změnit jméno, ulice se může přejmenovat atd... :-D ), takže se musím předně zamyslet, zda a kde chci udržovat historii (revize) a kde pouze aktuální stav. Pak to bude pokaždé rozhodování mezi 1:1 nebo 1:N příp. N:M (pokud chci mít objekty uloženy jen jednou).
-- OldFrog
Josef Kufner avatar 20.3.2014 14:11 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Implementační náročnost však může i klesnout. Obecnější kus kódu nemusí být nutně složitější, i když obvykle je těžší ho vymyslet. Na druhou stranu tak lze ušetřit nemálo duplikací či zbytečného dědění velmi podobných typů, což se projeví na snažší udržbě a dalším vývoji. Ale tady už hodně záleží na konkrétní aplikaci a nemá smysl to probírat tako obecně.
Hello world ! Segmentation fault (core dumped)
20.3.2014 15:46 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Měl jsem na mysli hlavně pracnost vyplývající z nutnosti kontrolovat počet položek - je to sice 1:N ale trvalé bydliště může být aktivní pouze jedno.

Samotný kód nebude složitější a bude univerzálnější, protože analogický požadavek mohu v budoucnu často relizovat s minimální pracností. Takže ve výsledku se práce ušetří.

Ale už mlátíme slámu - nemá to skutečně smysl horem dolem rozebírat :-D
-- OldFrog
20.3.2014 16:25 lertimir | skóre: 58 | blog: Par_slov
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Nicméně zatím se žádný skutečný příklad na vazbu 1:1 neobjevil. Všechno byly vazby 1:N, s tím, že aktivní může být maximálně jeden (nebo právě jeden) prvek. Já osobně žádnou skutečnou 1:1 vazbu neznám, takovou kdy by mělo skutečný smysl rozdělit objekt do dvou tabulek, a zároveň to nebyla v podstatě skrytá vazba 1:N.
20.3.2014 17:10 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Však už to tady bylo: Zaměstnanec - rodné číslo. Zaměstnanec - trvalé bydliště. Zaměstnanec - manžel(ka). Kniha - ISBN. Pošta - PSČ.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
20.3.2014 17:18 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Pokud chcete zachovat historii máte z toho vazby 1:N.
-- OldFrog
20.3.2014 17:22 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
O tom jsme se už bavili. ISBN a PSČ se to však netýká, tam zůstává vazba 1:1.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
20.3.2014 19:41 lertimir | skóre: 58 | blog: Par_slov
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
A co získám, když budu mít oddělené ISBN od knihy a mít je ve dvou tabulkách a ne v jedné tabulce?
20.3.2014 19:47 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
ISBN od knihy oddělovat nemusím, ale stále je to vazba 1:1. Spíš jsem asi měl uvést zaměstnanec - rodné číslo. U něj má oddělení větší význam a také je to relace 1:1.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
20.3.2014 19:50 lertimir | skóre: 58 | blog: Par_slov
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
To si ale nerozumíme. Vazba 1:1 kterou nacpu do jedné tabulky jako různé fieldy je normální a všude. Ale celou dobu je tohle vlákno o tom, proč mít vazbu 1:1 mezi dvěma tabulkami. Ani zaměstnanec a rodné číslo nevidím pro důvod oddělovat.
20.3.2014 19:56 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Třeba proto, že programátor aplikace pro závodní stravování nemá důvod čumět do rodných čísel. A je spousta dalších aplikací se zaměstnanci, které rodné číslo nepotřebují. A také všichni zaměstnanci rodné číslo nemají.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
20.3.2014 20:10 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
OT: Co bych za to docela dlouhý čas dal (fčil už je to v pohodě), kdyby byla vazba Osoba−>RČ vazbou 1:N a měli tam obě má rodná čísla…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
20.3.2014 20:23 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Upřel jsem teď pohled na naši databázi, u které si vývojář neustále říkal: Tohle je vazba 1:1, tohle také 1:1 - to bude všechno v jedné tabulce. Výsledkem je tabulka, která má 130 sloupců, pár tisíc řádek a všechny dotazy jsou neskutečně pomalé - často i víc, než čtvrt hodiny. Jenom proto, že se do sestav neustále žvejkají i údaje, které k ničemu nepotřebuji.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
21.3.2014 12:23 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Nění chyba jinde? Co je to za dabatázový server? Nevidím důvod, proč by to mělo být tak pomalé - pokud tam jsou správně indexy a ty sloupce se všechny paušálně pokaždé netahají do aplikační vrstvy. A samozřejmě pokud není ten dotaz sám o sobě divoký (regexp, like, složetejší agregace a výpočty).
-- OldFrog
20.3.2014 17:26 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
S tou historií se používá ještě jedno řešení: Při změně nebo zrušení záznamu se ten původní ukládá do archivní tabulky včetně časového razítka a označením toho, kdo tu změnu udělal. V hlavní tabulce je pak pouze aktuální záznam.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 20.3.2014 20:22 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Jo, to je pěkné řešení. Moc nekomplikuje život a umožňuje logovat méně dat, než kolik v upravovaných řádcích je.

Ale vazba 1:1 tam také není.
Hello world ! Segmentation fault (core dumped)
20.3.2014 20:35 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
V archivu už ne, ale v aktuální tabulce je jen jedno (platné) trvalé bydliště. Takže vazba 1:1.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
21.3.2014 16:48 Roslav | skóre: 6 | blog: mamblog
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Ale na jednej adrese trvalého bydliska môže predsa žiť viac ľudí.
Hmmpf... Niečomu tak deterministickému ako počítače sa jednoducho nedá veriť.
21.3.2014 17:07 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Takže by to byl vztah N:1. Jenže je trochu problém, jak určit, zda jsou dvě adresy totožné. Proto jsou adresy obvykle vloženy duplicitně.

Snažili jsme se před několika lety pracovat s nějakou databází měst, ulic a psč (tuším že to bylo od České pošty), ale občas tam něco scházelo a bylo s tím spousta problémů (např. duplicitní zápis názvu města ve stylu Borová u Poličky versus Borová - jsou to stejná města nebo nejsou?).

Ideální by asi byla souřadnice bytu s vhodnou tolerancí, ale to by bylo zase jak z Orwella tak možná buďme rádi, že to nefunguje :-)
-- OldFrog
Josef Kufner avatar 21.3.2014 18:04 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Na webu potravinydomu.cz to tak je. Zadáš ulici, nabídne to města, PSČ a všecko ostatní. Takže napozadí tam mají databázi ulic a měst. Asi to fungovat bude. Myslím, že to je celkem užitečné při optimalizaci rozvážky nákupů.
Hello world ! Segmentation fault (core dumped)
21.3.2014 18:17 Kit
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Ta databáze je běžně dostupná na MVČR v XML.
Josef Kufner avatar 21.3.2014 19:18 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
A z OpenStreetMap si lze vycucnout celý svět.
Hello world ! Segmentation fault (core dumped)
19.3.2014 23:05 OldFrog {Ondra Nemecek} | skóre: 25 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Jako že bych do samostatné tabulky přesunul třeba jen jeden sloupec? To mi přijde moc divoké.

Podle mě by měla rozhodovat sémantika těch dat, které chci do samostatné tabulky přesouvat. Pokud je to několik položek a představují samostatnou entitu - šup s tím do nové tabulky. Narozdíl od pana Kufnera si myslím, že databáze by měla s reálným světem souviset co nejvíce - přeci ho modeluje!

V gui pak bude na úpravu té entity samostatný dialog což je implementačně snadné, pro uživatele srozumitelné a flexibilnější pro rozšiřování.

Selecty budou u více tabulek složitější, bude tam více joinů. Což nebolí, pokud používám orm.
-- OldFrog
19.3.2014 23:15 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Umbrello vazba 1:1
Pro vyjádření relace uvnitř tabulky jeden neklíčový sloupec zpravidla nestačí. Když zůstanu u té personalistiky, tak dalším důležitým atributem bývá datum změny. Souhlasím s tím, že by měla být zachována sémantika.

Selecty složitější nebudou. Místo ORM používám pohledy.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

Založit nové vláknoNahoru

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.