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í
×

včera 20:40 | Zajímavý článek

Lukáš Růžička v článku S Hydrogenem za lepší rytmus aneb bubeníkem snadno a rychle na MojeFedora.cz představuje automatického bubeníka s názvem Hydrogen (Wikipedie): Hydrogen je velmi vydařený program, který rozhodně nesmí chybět ve výbavě žádného linuxového muzikanta. Umožňuje nejen vytváření jednoduchých bicích doprovodů, ale také sofistikované programování bicích a perkusí, jehož výsledek se naprosto vyrovná drahým

… více »
Ladislav Hagara | Komentářů: 0
včera 13:55 | Zajímavý projekt

UPSat (Twitter) je první open source nanodružice (CubeSat). Jedná se o společný projekt nadace Libre Space Foundation a University of Patras. Repozitáře projektu jsou k dispozici na GitHubu. Pod Libre Space Foundation patří také projekt SatNOGS (zprávička), projekt globální sítě open source pozemních satelitních stanic, vítězný projekt soutěže The Hackaday Prize 2014. UPSat je součástí mise QB50 (Twitter). ID UPSatu je GR02. GPS přijímač na UPSatu je od české společnosti SkyFox Labs. Součástí mise QB50 je i česká nanodružice VZLUSAT-1 s ID CZ02.

Ladislav Hagara | Komentářů: 3
21.4. 15:00 | Komunita

V diskusním listu Thunderbird planning vývojáři poštovního klienta Thunderbird řeší, zda by nebylo možné budoucí Thunderbird postavit nad webovými technologiemi, tj. nad Electronem, stejně jako například Nylas Mail. Gecko, nad kterým je Thunderbird postaven, se má hodně změnit. V plánu je odstranění vlastností, které Firefox už nepotřebuje, ale Thunderbird je na nich závislý [Hacker News, reddit].

Ladislav Hagara | Komentářů: 83
21.4. 10:22 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 299 bezpečnostních chyb. V Oracle Java SE je například opraveno 8 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 7 z nich. V Oracle MySQL je opraveno 39 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 11 z nich.

Ladislav Hagara | Komentářů: 6
21.4. 10:00 | Pozvánky

V úterý 25. dubna proběhne další Prague Containers Meetup. Přijďte se nechat inspirovat jak zlepšit build/delivery pipeline vašich kontejnerových aplikací.

little-drunk-jesus | Komentářů: 2
20.4. 21:33 | Komunita

Na Launchpadu se objevilo kódové jméno následující verze Ubuntu. Ubuntu 17.10 bude Artful Aardvark (mazaný hrabáč) [OMG! Ubuntu!].

Ladislav Hagara | Komentářů: 10
20.4. 20:11 | Zajímavý software

MojeFedora.cz informuje, že společnost Nylas oznámila vydání verze 2.0 poštovního klienta Nylas Mail (původně Nylas N1), která již plně podporuje Linux. Obchodní model společnosti je tzv. open core. Samotný klient je open source, ale uživatel si musí připlatit za některé pokročilé funkce. V základu se lze připojit k GMailu nebo libovolnému účtu přes IMAP. Podpora Exchange je pouze v placené verzi. Klient je napsaný nad Electronem.

Ladislav Hagara | Komentářů: 12
20.4. 15:55 | Zajímavý článek

České centrum pro investigativní žurnalistiku (ČCIŽ) publikovalo na svých stránkách článek s názvem Je česká státní správa „rukojmím Microsoftu“?. Drtivá většina české veřejné správy je závislá na výrobcích softwarového gigantu Microsoft – a nijak zvlášť jí to nevadí.

Ladislav Hagara | Komentářů: 18
20.4. 02:48 | Nová verze

Google Chrome 58 byl prohlášen za stabilní. Nejnovější stabilní verze 58.0.3029.81 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo 29 bezpečnostních chyb. Mezi nimi i chyba umožňující phishing s unicode doménami.

Ladislav Hagara | Komentářů: 0
19.4. 22:44 | Nová verze

Po šesti týdnech od vydání verze 52.0 byla vydána verze 53.0 webového prohlížeče Mozilla Firefox. Z novinek lze upozornit například na nové kompaktní vzhledy – tmavý z Firefoxu Developer Edition a jeho světlá varianta. Na Linuxu byla ukončena podpora procesorů starších než Pentium 4 a AMD Opteron. Podrobné informace v poznámkách k vydání a na stránce věnované vývojářům. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 11
Chystáte se pořídit CPU AMD Ryzen?
 (4%)
 (35%)
 (0%)
 (7%)
 (45%)
 (10%)
Celkem 273 hlasů
 Komentářů: 31, poslední 20.4. 21:26
    Rozcestník

    Dotaz: mysql zavislost vice tabulek - cizi klic?

    25.11.2009 01:09 fg
    mysql zavislost vice tabulek - cizi klic?
    Přečteno: 2105×
    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.