abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:11 | Nová verze

    Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.

    Ladislav Hagara | Komentářů: 0
    dnes 17:56 | Nová verze

    Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.

    Ladislav Hagara | Komentářů: 0
    dnes 13:11 | Nová verze

    Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 3
    dnes 12:33 | Zajímavý software

    Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.

    Ladislav Hagara | Komentářů: 12
    včera 23:22 | Nová verze

    Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.

    Ladislav Hagara | Komentářů: 11
    včera 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

    Ladislav Hagara | Komentářů: 11
    včera 20:22 | Nová verze

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | Nová verze

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    28.4. 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 887 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Navrh databaze

    23.11.2015 10:01 jirka
    Navrh databaze
    Přečteno: 1788×
    Zdravim potreboval bych pomoct s navrhem DB. Mam entitu Auto, ktera obsahuje atributy jako vin, rok vyroby atd. Pak mam Entitu karoserie, ktera je jen vycet typu karoserie (Kombi, SUV,...).

    Prvni navrh: Entita karoserie ma primarni klic jehoz id je poskytnuto entite Auto. Coz mi prijde zbytene a proto bych volil spise druhou moznost.
    1/
    +-----------------+         +-------------------+
    |  Auto           |         | Kasoresie         |
    +-----------------+         +-------------------+
    | PK Vin int      |         | PK id Int         |
    | RokVyr varchar  |         | Jmeno Varchar(25) |
    | FK TypKaroserie |--------<|
    
    
    2/
    +-----------------+         +--------------------------+
    |  Auto           |         | Kasoresie                |
    +-----------------+         +--------------------------+
    | PK Vin int      |    +---<| PK Uni Jmeno Varchar(25) |
    | RokVyr varchar  |    |
    | FK TypKaroserie |----+
    
    Ve druhe moznosti vydim hlavni problem pri zmene nazvu. Respektive v pripade kdy mam v selectu left join (plati pro prvni pripad) tak zmenim jen nazev Karoserie u ID a ve vysledku selectu mam hotovo. V druhem pripade by tato moznost nebyla a pri zmene nazvu by byla stracena navaznost starych nazvu.

    Snad sem to popsal srozumitelne. Dekuji predem za podmety a navrhy. Teprve se ucim tak me prosim nekamenujte za nepresnosti. Kazdy jednou musel zacit ;)

    Řešení dotazu:


    Odpovědi

    23.11.2015 10:27 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Navrh databaze
    Pokud jsem to dobře pochopil a rozdíl mezi 1 a 2 jen v tom, že 1 má id karosérie jako klíč tabulky i klíč vazby na auto, pak samozřejmě 1. Přece nebudeš spojovat tabulky stringovým názvem karoserie.
    Tarmaq avatar 23.11.2015 10:30 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Navrh databaze
    Pouzil bych variantu 1/ jen s tim rozdilem, ze bych nemel umelohmotnej primarni klic typu INTEGER, ale dal bych tam VARCHAR. Tedy hodnoty v danem cisleniku by pak byly nejak takto:
    +---------+------+
    |id       |name  |
    +---------+------+
    |kombi    |Kombi |
    |suv      |SUV   |
    |sedan    |Sedan |
    +---------+------+
    
    Pokud bys pak chtel mit na FE u kombiku napsano napr. "Vagon", staci pak zmenit jen name u Karoserie.
    Don't panic!
    23.11.2015 10:37 jirka
    Rozbalit Rozbalit vše Re: Navrh databaze
    ok super dekuji za podmety - pujdu cestou 1.
    Co se tyce "umelohmotnej PK" neni lepsi z duvodu rychlosti puzivat cisleny PK, i kdyz umelohmotnej, misto Strigoveho? Dekuji za objsaneni.
    Tarmaq avatar 23.11.2015 11:05 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Navrh databaze
    Tak INT bude mozna o malo rychlejsi, ale ten rozdil nebude tak vyrazny. Vyhodou stringoveho bude lepsi citelnost dat v tabulkach, neni potreba uziti konstant v kodu, atp.
    Don't panic!
    Josef Kufner avatar 23.11.2015 20:03 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Navrh databaze
    Ta čitelnost v databázi celkem hodně pomůže a navíc to ID je pak často vidět i v URL při přístupu k daným entitám. A pokud nejde o statisíce řádků, opravdu bude rozdíl ve výkonu sotva znatelný.
    Hello world ! Segmentation fault (core dumped)
    24.11.2015 19:48 Filip Jirsák
    Rozbalit Rozbalit vše Re: Navrh databaze
    Ta čitelnost v databázi nebo dokonce URL znamená, že se z umělého klíče stal klíč přirozený a při změně názvu bude potřeba změnit i to ID. Protože mít v databázi záznamy
    ID    | Nazev
    -------------
    jeep  | SUV
    jeep2 | jeep
    
    to čitelnosti v databázi vůbec nepomůže, právě naopak. Čitelnosti v databázi pomůže, pokud člověk není líný napsat JOIN. ID v URL je prasárna, pokud to není součástí API – například obvykle budete chtít povolit více URL pro jednu entitu (aby URL zůstalo platné i po přejmenování).
    Josef Kufner avatar 24.11.2015 21:36 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Navrh databaze
    Záleží na aplikaci a na povaze dat v ní. Čitelnost URL je užitečná například při pohledu do logu, neboť tam se join dělá těžko. ID ve tvaru jeep1 a jeep2 je na prd, ale pokud to je například číslo místnosti nebo login uživatele, tak to velmi usnadní orientaci v datech při přístupu přes obecné nástroje. Změnu takového ID napříč celou databází pak snadno zajistí správně udělané cizí klíče s cascade při změně.

    Zda ID v URL je či není prasárna hodně závisí na aplikaci. A často to sice prasárna být může, ale při tom to nemusí vůbec ničemu vadit a jen by se to zbytečně komplikovalo.
    Hello world ! Segmentation fault (core dumped)
    25.11.2015 11:18 Filip Jirsák
    Rozbalit Rozbalit vše Re: Navrh databaze
    Pokud je ID číslo místnosti nebo login uživatele, už to není umělý klíč a asi nebudete mít v tabulce vedle sebe dva sloupečky „ID“ a „login“, ve kterých budou stejné hodnoty. To popisujete tu druhou variantu, o které tazatel psal, tedy udělat primární klíč přímo z názvu. Ano, také je to možnost, nicméně v tomto případě je podle mne vhodnější umělý primární klíč, protože u toho názvu bude problém s trvalým zajištěním všech potřebných předpokladů. Třeba unikátnost – při návrhu vám samozřejmě všichni odsouhlasí, že název je a vždy bude unikátní, protože přece jak by to lidi rozlišili, kdyby se to jmenovalo stejně. První požadavek na duplicitní název pak přijde nejpozději do týdne od spuštění ostré verze.
    25.11.2015 11:57 jos
    Rozbalit Rozbalit vše Re: Navrh databaze
    na jirsáka bacha, radši už na něj nereaguj, relačním databázím naprosto nerozumí, v uvedenejch diskuzích ho najdeš pod nickem Fa & Bi
    24.11.2015 09:31 kukacka
    Rozbalit Rozbalit vše Re: Navrh databaze
    A jeste pro uplnost potencialni nevyhody stringoveho klice. Nelze pouzit sekvence/autoincerement. Pri zalozeni noveho zaznamu je treba klic zadat (kdo - uzivatel aplikace?). Existuji "frameworky" nad umelymi klici, ktere predpokladaji, ze je to cislo. Samozrejme nic z toho nemusi byt v konkretnim pripade problem, ale je dobre o tom vedet.
    23.11.2015 22:04 Xerces
    Rozbalit Rozbalit vše Re: Navrh databaze
    Tak že by se konečně ministerstvo rozhoupalo přepsat ten registr vozidel? :-D
    24.11.2015 12:31 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Navrh databaze
    jj, už se na tom vážně pracuje, jak vidíte .. poslední ladění návrhu

    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.