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 01:22 | Nová verze Ladislav Hagara | Komentářů: 0
    dnes 00:55 | Zajímavý projekt

    PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.

    vlk | Komentářů: 0
    včera 19:44 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Komunita

    Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.

    Ladislav Hagara | Komentářů: 13
    včera 03:55 | Komunita

    sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.

    Ladislav Hagara | Komentářů: 0
    6.5. 22:11 | Nasazení Linuxu

    Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).

    Ladislav Hagara | Komentářů: 2
    6.5. 13:22 | IT novinky

    Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.

    Ladislav Hagara | Komentářů: 1
    6.5. 04:55 | Nová verze

    Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 1
    6.5. 00:33 | Komunita

    Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.

    Ladislav Hagara | Komentářů: 32
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 549 hlasů
     Komentářů: 25, poslední včera 20:12
    Rozcestník

    Dotaz: Jaky db model na cislovanie uloh pouzivatelov od 1 pre kazdeho zvlast

    21.9.2011 16:01 polymorf | skóre: 14 | blog: tar_zxpf
    Jaky db model na cislovanie uloh pouzivatelov od 1 pre kazdeho zvlast
    Přečteno: 500×
    Mam tabulku pouzivatelov (user.id, user.name) a tabulku uloh (task.id, task.userId, task.order, task.uloha) - pripadne to moze byt aj inak usporiadane ak to viete inak, lepsie. Chcel by som dosiahnut, aby ulohy boli cislovane poradim od 1 hore pre kazdeho usera zvlast, napr:
    user:
    1 janko
    2 ferko
    
    ulohy (jankove):
    1 1 1 vyniest kos
    2 1 2 umyt riad
    3 1 3 domace ulohy
    
    ulohy (ferkove):
    4 2 1 namalovat plot
    5 2 2 vyvencit psa
    
    Mozem vytvorit unikatny index (task.userId, task.order) ktory mi zabezpeci ze user nebude mat duplicitne poradie uloh, ked zacnem robit operacie ako zmena poradia uloh tak si budem musiet vsetko oprogramovat sam. Napr. ak by som chcel jankovi zmenit poradie "Domace ulohy" z 3 na 1 tak to musim robit takto:
    - ulohe 1 priradim nejake pomocne poradie, napr. 4
    - ulohe 3 nastavim poradie 1
    - ulohe 2 nastavim 3
    - ulohe 1 nastavim 2
    
    Co sa mi da dost komplikovane. Neunika mi nejaka jednoduchsia cesta? Uvazujme mysql alebo postgres. Napadol ma spojovy zoznam ale tam asi selekt s triedenim podla cisla poradia nebude trivialny. Kazdy user by nemal mat viac ako 200 uloh (resp. za poslednych 5 rokov realnej prevadzky maximum bolo 120) cize ak viete nejake trivialne ale pomale riesenie, nie je problem pouzit aj to.


    Řešení dotazu:


    Odpovědi

    21.9.2011 20:38 jekub
    Rozbalit Rozbalit vše Re: Jaky db model na cislovanie uloh pouzivatelov od 1 pre kazdeho zvlast
    ulohe 1 priradim nejake pomocne poradie, napr. 4
    
    na co pomocné pořadí, když máme null

    Každopádně postgres by měl umět DEFERRABLE constraints. Jak MySQL nevím.
    21.9.2011 21:47 l0gik | skóre: 22
    Rozbalit Rozbalit vše Re: Jaky db model na cislovanie uloh pouzivatelov od 1 pre kazdeho zvlast
    Pokud chceš změnit pořadí všech/více, nejprve jim všem nastav null a pak je nastav jak chceš.

    Jestli chceš vyměnit pořadí dvou, pak použij
    UPDATE ulohy SET order = IF(JSEM A, nové pořadí A, nové pořadí B)
    V postgresql i v mysql jde k témuž co v mysql dělá IF použít
    CASE WHEN ... THEN ... ELSE ... END
    .
    Tarmaq avatar 22.9.2011 11:52 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Jaky db model na cislovanie uloh pouzivatelov od 1 pre kazdeho zvlast
    Vyresil bych to pomoci BEFORE INSERT/BEFORE UPDATE triggeru nad tabulkou tasks.
    V before insert triggeru by melo stacit zaridit neco jako:
    UPDATE task
    SET order_ = order_ + 1
    WHERE order_ >= NEW.order_
      AND user = NEW.user_
    ;
    
    V before update triggeru:
    UPDATE task
    SET order_ = 0
    WHERE id = OLD.id
    ;
    IF OLD.order_ > NEW.order_ THEN
      UPDATE task
      SET order_ = order_ + 1
      WHERE order_ < OLD.order_
        AND order_ >= NEW.order_
        AND user = NEW.user_
      ;
    ELSIF OLD.order_ < NEW.order_ THEN
      UPDATE task
      SET order_ = order_ - 1
      WHERE order_ > OLD.order_
        AND order_ <= NEW.order_
        AND user = NEW.user_
      ;
    END IF;
    
    Don't panic!
    1.10.2011 07:58 VM
    Rozbalit Rozbalit vše Re: Jaky db model na cislovanie uloh pouzivatelov od 1 pre kazdeho zvlast
    Pořadí bych do databáze neukládal, dal bych tam místo toho prioritu. Pořadí by vzniklo až při čtení úloh daného uživatele - order by priority, task_id nebo order by priority+task_id.

    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.