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:22 | Komunita

Mozilla.cz informuje, že na blogu Mozilly věnovaném bezpečnosti byly zveřejněny výsledky bezpečnostního auditu služby Firefox Accounts, v českých překladech účet Firefoxu, sloužící hlavně k přihlašování k synchronizaci Firefox Sync. Nalezeno bylo celkem 15 bezpečnostních chyb, z toho jedna byla označena jako kritická a tři jako vážné.

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

Byla vydána první stabilní verze 1.0 svobodného komunikačního softwaru Ring (Wikipedie). Ring, původně SFLphone, je součástí projektu GNU [reddit].

Ladislav Hagara | Komentářů: 2
dnes 06:00 | Zajímavý projekt

Warner Skoch na svých stránkách zveřejnil návod (YouTube) na zhotovení kapesní herní konzole MintyPi. Konzole MintyPi je postavena na Raspberry Pi Zero W a RetroPie. Jako obal slouží plechová krabička od mentolek.

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

Byl vydán Debian 9.1, tj. první opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.9, tj. devátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 28
22.7. 15:50 | Zajímavý článek

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice zveřejnila čtyřiačtyřicetistránkovou výroční zprávu za rok 2016. K dispozici je ve formátu pdf ve vysokém (21,68 MB) a nízkém (7,1 MB) rozlišení. Zpráva byla vytvořena ve Scribusu.

Ladislav Hagara | Komentářů: 0
22.7. 14:40 | Zajímavý software

Mozilla.cz informuje, že Firefox Focus pro Android, velmi jednoduchý prohlížeč zaměřený na anonymní prohlížení, dosáhl milionu stažení. Firefox Focus blokuje sledující prvky a reklamy a při ukončení automaticky smaže všechna uložená data stránek, historii prohlížení a cookies.

Ladislav Hagara | Komentářů: 39
22.7. 14:20 | Komunita

Vyplněním dotazníku na Formuláře Google lze ovlivnit výběr výchozích aplikací v Ubuntu 18.04 LTS. Podrobnosti v příspěvku Dustina Kirklanda na Ubuntu Insights [reddit].

Ladislav Hagara | Komentářů: 7
21.7. 11:30 | Komunita

Etherpad (Wikipedie), svobodný online webový textový editor umožnující spolupráci v reálném čase, se stal oficiálním projektem organizace Software Freedom Conservancy (Wikipedie). Vývojáři Etherpadu se tak mohou stejně jako vývojáři dalších projektů soustředit pouze na vývoj softwaru a vše kolem zařídí Software Freedom Conservancy. Spuštěna byla instance Etherpadu pad.sfconservancy.org.

Ladislav Hagara | Komentářů: 3
21.7. 10:40 | Zajímavý článek

Lukáš Růžička se v článku Workrave ve Fedoře aneb jak si nevytunelovat karpál na MojeFedora.cz věnuje aplikaci Workrave (Wikipedie) na sledování času stráveného na počítači, která může pomoci vyhnout se negativním účinkům práce s počítačem (RSI, CTS), nebo je alespoň výrazně zmírnit.

Ladislav Hagara | Komentářů: 1
21.7. 10:00 | Komunita

Na Humble Bundle lze získat počítačovou hru Shadow Warrior: Special Edition běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 2
Těžíte nějakou kryptoměnu?
 (5%)
 (3%)
 (22%)
 (71%)
Celkem 65 hlasů
 Komentářů: 2, poslední dnes 03:34
    Rozcestník

    Dotaz: mysql zavislost vice tabulek - cizi klic?

    25.11.2009 01:09 fg
    mysql zavislost vice tabulek - cizi klic?
    Přečteno: 2108×
    Mam nasledujici schema:
    tabulka1
    jmeno heslo
    
    tabulka2
    jmeno data1 data2 ...
    
    tabulka3
    jmeno data1 da...
    
    tabulka...
    
    Potreboval bych, aby kdyz uzivatel1 existuje alespon v nejake z tabulek tabulka2-tabulkaN, tak aby existoval i v tabulka1. Pokud by se vymazal uzivatel1 z nejake tabulky tabulka2-tabulkaN a uz v zadne z techto tabulek neexistoval, tak by se automaticky vymazal i z tabulka1. Vim jak tohle vyresit pomoci PHP, ale chtel bych si to co mozna nejvice zjednodusit a pokud tohle pujde udelat primo pomoci mysql, budu rad. Pujde to, jak?

    Pridani novych zaznamu by melo fungovat nejak takhle: pokud uzivatele1 pridam napr. do tabulka2, tak se automaticky prida do tabulka1 s heslem ze sloupce data1(v tabulka2). Potom uz si hesla nevsimam a jakakoliv zmena sloupce heslo ci sloupcu data1 v ostatnich tabulkach bude zcela nezavisla.

    Mam pocit, ze pokud nepujde to ostatni, tak alespon to automaticke mazani z tabulka1 v pripade neexistence uzivatele1 v ostatnich tabulkach by se dala udelat pomoci ciziho klice?

    Odpovědi

    25.11.2009 08:24 FooBar
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    No... prijde mi, ze chces cizi klic z tabulka2...N na sloupci jmeno na zaznam v tabulka1;)

    Ocekavej ale, ze narazis na takove vesele komplikaci, ze velmi casto pouzivany (mozna implicitni?) engine MySQL, zvany MyISAM, referencni integritu vubec neumi a napsat tam takovej constraint je pomalu na urovni komentare.;) Tudiz, pokud pouzivas MyISAM, nepomuzes si, musis prejit napr. na InnoDB.
    26.11.2009 20:41 fg
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    Jenže já chci aby když v tabulka2 přidám uživatele, aby se přidal i v tabulka1, zatímco takový cizí klíč očekává že už v tabulka1 uživatel bude existovat. Takto by to mělo fungovat(tabulka: sloupec s uživateli):
    tabulka1: uživatel1 uživatel2 uživatel3
    tabulka2: uživatel1
    tabulka3: uživatel2 uživatel1
    tabulka4: uživatel3
    
    
    toto už správně není, protože uživatel1 neexistuje v žádných dalších tabulkách
    tabulka1: uživatel1 uživatel2
    tabulka2: 
    tabulka3: uživatel2
    tabulka4: uživatel3
    
    ani toto není správně, protože uživatel1 existuje v tabulka2, ale ne v tabulka1
    tabulka1: uživatel2 uživatel3
    tabulka2: uživatel1
    tabulka3: uživatel2
    tabulka4: uživatel3
    
    
    
    Na to bych asi potřeboval nějaké sofistikovanější propojení. Poradí někdo?
    27.11.2009 12:35 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    použi triggre a refcounter
    27.11.2009 14:25 fg
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    Jaký refcounter? Jako že bych na každé z podřízených tabulek vytvořil trigger, že při insert se pokud neexistuje založí záznam v hlavní a při každém vytvoření bych v tabulka1 v sloupci pocet připočet jedničku. Pokud bych v podřízených tabulkých mazal, tak bych dekrementoval hodnotu v primární dokud by nebyla 0, v tom případě bych záznam odstranil. Byla ta rada tak myšlena nebo se to dá udělat jednodušeji?
    27.11.2009 14:44 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    áno, presne to som myslel. V prípade pridania/zmazania tabuľky nemusíš modifikovať všetko, len príslušnú tabuľku
    27.11.2009 16:11 fg
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    Tak jsem chtěl dát ten mazací trigger přímo na hlavní tabulku, ale nejde spustit:
    CREATE TRIGGER tr_deleteNotUsed AFTER UPDATE ON users
      FOR EACH ROW BEGIN
        DELETE FROM users WHERE username=NEW.username AND used=0;
      END;
    
    po update tabulky to vrací: #1442 - Can't update table 'users' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 
    
    Dočetl jsem se že by to mohlo být kvůli zacyklení, ale tady se přeci nic necyklí. Kde dělám chybu?
    rADOn avatar 30.11.2009 20:11 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    Pokousis se cyklicky mazat sam sebe coz je blbost. Na cisteni potrebujes vlastni triggery na kazde datove tabuli, ktere budou udrzovat pocet referenci a pripadne mazat uzivatele z hlavni tabule. Cili trigger mas vicemene dobre ale davas ho na spatnou tabuli.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    28.11.2009 09:50 FooBar
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    Aha, vida, zmatlo mne zadani, ponevadz sice mluvis o sloupci heslo, ale to mas jen u tabulky 1 :)

    V tom pripade je to jasnej pripad pro triggery, ale prosimte, ten navrh zni dost silene. Zvazil bych, jestli to treba nechces delat jinak :)
    Tarmaq avatar 27.11.2009 16:36 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    nevim co vsechno umi MySQL, dlouho jsem s tim uz nedelal..
    Osobne bych to udelal tak, ze bych udelal pohled nad tabulkou1, joinujici tabulku2, tabulku3 .. tabulkuN a v insert/update triggeru vyresil rozstrkani prislusnych veci do tabulek.. u delete triggeru by to fungovalo podobne, mazalo by se z tabulky1 a o smazani ostatnich by se postaralo ON DELETE CASCADE na tom cizim klici
    Don't panic!
    27.11.2009 16:40 fg
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    Jenže tak to fungovat nesmí. Po smazání uživatele z tabulka1(nešťastnou náhodou) se nesmí smazat nikde jinde.
    Tarmaq avatar 27.11.2009 16:52 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    nevim, mne to prijde jako hodne nestastne reseni navrhu databaze, to budou uzivatele naraz v X tabulkach a zadna z nich nebude autoritativni?
    Don't panic!
    27.11.2009 18:47 fg
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    Každá databáze = 1 aplikace. Pro autentizaci uživatelů se používá tabulka1. Ale pokud odstraním uživatele z tabulka1, nemohu ho smazat i z ostatních tabulek(protože to není jen o mazání záznamů, několik tabulek má přímou souvislost se soubory na pevném disku).. Jinak zdá se že jsem to už vyřešil. Vytvořil jsem rutinu, kterou spouští trigger na každé z podřízených db:
    DELIMITER $$
    
    CREATE TRIGGER tr_incrementMain AFTER INSERT ON users
      FOR EACH ROW BEGIN
        CALL auth.pr_authUsed(NEW.username,NEW.password,1);
      END;
    
    DELIMITER $$
    
    CREATE TRIGGER tr_decrementMain AFTER DELETE ON users
      FOR EACH ROW BEGIN
        CALL auth.pr_authUsed(OLD.username,"",0);
      END;
    
    
    
    
    DELIMITER $$
    
    CREATE PROCEDURE pr_authUsed (uzivatel CHAR(255), heslo CHAR(255), posun INT)
    BEGIN
    DECLARE usedValue INT; 
     IF (posun = 1) THEN BEGIN
      UPDATE `auth`.`users` SET `used` = used+1 WHERE `users`.`username` = uzivatel LIMIT 1;
      IF (ROW_COUNT()<1) THEN BEGIN
        INSERT INTO `auth`.`users` (`username`, `password`, `active`, `used`) VALUES (uzivatel,heslo,'1','1');
      END;
      END IF;
     END;
     ELSE BEGIN
      UPDATE `auth`.`users` SET `used` = used-1 WHERE `users`.`username` = uzivatel LIMIT 1 ;
      SELECT `used` INTO usedValue FROM `auth`.`users` WHERE `users`.`username` = uzivatel LIMIT 1 ;
      IF (usedValue < 1) THEN BEGIN
       DELETE FROM `auth`.`users` WHERE `username` = uzivatel LIMIT 1 ;
      END;
      END IF;
     END;
     END IF;
    END
    
    
    Tarmaq avatar 30.11.2009 12:51 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: mysql zavislost vice tabulek - cizi klic?
    V tom pripade bych uzivatele z tabulky1 vubec nemazal, jen bych mel pro kazdy modul/aplikaci samostatny sloupec, ktery by urcoval jestli tam ma pristup.. misto odstraneni z nejakeho modulu bych mu akorat zakazal pristup v tabulce1 a data by pritom zustala zachovana..
    Pokud je ale ten trigger vyhovujici, tak asi neni co resit..
    Don't panic!

    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.