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 22:44 | Zajímavý článek

Tavis Ormandy popisuje, jak zprovoznil 32 let starý unixový port tabulkového procesoru Lotus 1-2-3 na moderním Linuxu. Doprovodné zdrojové kódy jsou na GitHubu.

Fluttershy, yay! | Komentářů: 1
včera 17:00 | Nová verze

Po pěti měsících vývoje od vydání verze 250 byla vydána nová verze 251 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 2
včera 15:44 | IT novinky

HP ve spolupráci se System76 představil 14" notebook HP Dev One s procesorem AMD Ryzen 7 PRO a předinstalovaným Pop!_OS Linuxem.

Ladislav Hagara | Komentářů: 5
včera 15:00 | Nová verze

Byla vydána verze 1.61.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

Ladislav Hagara | Komentářů: 0
19.5. 00:33 | Zajímavý článek

Správce nástroje curl Daniel Stenberg na GitHubu průběžně vytváří svou novou knihu Uncurled, v níž shrnuje své dlouhodobé zkušenosti s údržbou open-source projektu: od odpozorovaných pouček po vtipné a ne až tak vtipné příklady e-mailů od uživatelů.

Fluttershy, yay! | Komentářů: 25
19.5. 00:22 | Nová verze

Byla vydána nová major verze 25.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Přehled novinek v příspěvku na blogu.

Ladislav Hagara | Komentářů: 4
19.5. 00:11 | Nová verze

Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript a TypeScript, bylo vydáno ve verzi 1.22. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
18.5. 18:22 | Nová verze

Společnost Red Hat oznámila vydání Red Hat Enterprise Linuxu (RHEL) 9.0. Vedle nových vlastností a oprav chyb přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 8
18.5. 14:00 | Komunita

Lars Knoll oznámil, že po 25 letech v ekosystému Qt, z toho 22 let pracující pro různé společnosti vlastnící Qt, odchází ze společnosti The Qt Company do malého norského startupu.

Ladislav Hagara | Komentářů: 8
18.5. 13:22 | Zajímavý projekt

Na Kickstarteru běží kampaň na podporu mini ITX desky Turing Pi 2 Cluster Computer. Vložením 4 výpočetních modulů, podporovány jsou Raspberry Pi 4, Turing RK1 a Nvidia Jetson, lze získat 4uzlový cluster. Cena desky je 219 dolarů.

Ladislav Hagara | Komentářů: 2
Na sociálních sítích nebo jiných webových diskuzích vystupuji pod
 (62%)
 (15%)
 (23%)
Celkem 317 hlasů
 Komentářů: 26, poslední 20.5. 15:03
Rozcestník


Dotaz: Audit trails nad jedinou MySQL tabulkou?

14.1.2015 03:13 Harvie.CZ
Audit trails nad jedinou MySQL tabulkou?
Přečteno: 334×
Ahoj, resim nasledujici problem.

Snazim se navrhnout nejakej elegantni system pro "audit trails" v databazi. Momentalne to funguje takhle:
  • V tabulce jsou krome ID i timestamp sloupce plati_od a plati_do. Tyhle 3 spolu tvori uniq index.
  • Pokud se v tabulce vytvori nova polozka, tak se plati_od nastavi na NOW() a plati_do se nastavi na NULL.
  • Pokud se z tabulky cte, tak se pouziva WHERE plati_do IS NULL
  • Pokud se neco maze, tak se pouze plati_do updatne na NOW()
  • Pokud se neco updatuje, tak se nastavi neNULLovy plati_do stejne jako pri mazani a nova verze se ulozi s NULLovym plati_do
  • Jako bonus se muze ukladat do kazdyho radku i id usera, kterej ho vytvoril
  • Pokud tedy pri auditu chci videt historii zaznamu, tak staci vynechat WHERE na NULLovy plati_do.
Cely je to IMHO naprosto super vymysleny, ale ma to jeden zasadni problem. Neumim to zautomatizovat na urovni databaze a na urovni kodu je to pruda ohlidat aby nikdo nikde nezapisoval primo. Chci aby se vyse popsany proces aplikoval kdyz zavolam normalni naivni DELETE nebo UPDATE a nevi jak na to. SELECT me netrapi, to si klidne pohlidam sam.

Zkousel sem to resit triggerem, ale ten nemuze zapisovat do tabulky, ktery se sam tyka. To je problem. Reseni by samozrejme bylo ukladat historii do druhy tabulky a pri mazani tam zaznamy proste presouvat, ale to se mi vubec nelibi, nepripada mi to dost elegantni a delat to v zadnym pripade nebudu.

Odpovědi

14.1.2015 16:35 OldFrog {Ondra Nemecek} | skóre: 35 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Audit trails nad jedinou MySQL tabulkou?
Teď jsem to psal v sousedním vláknu: nepomohl by mariadb-audit-plugin Jako inspirace nebo i jako řešení... (ale nepoužívám to). Pokud není databází Mysql/Maria, tak hledat analogický nástroj. IMHO asi je nějaký důvod proč ten modul vznikl.
-- OldFrog
rADOn avatar 14.1.2015 17:59 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Audit trails nad jedinou MySQL tabulkou?
Logicky to zni ok. Prakticky… o jak velky tabuli je rec? Datum platnosti od-do je hezka vec pokud chces aby slo zadat ze zitra rano zacne platit jina hodnota, jinak je to kapku overkill pacz nafukujes tabuli mrtvymi daty. Na malych datech je to putna, nad vetsim datasetem casem dojdes do stavu ze nemuzes udelat alter bez dlouhyho vypadku a pak se to musi resit trochu slozitejc.

Reseni by se mozna dalo zaridit triggerem coz by bylo bytelny ale docela vachrlaty (ve smyslu ze to nepujde snadno obejit ale muze to mit vedlejsi ucinky, zalezi co za db pouzivas). Asi nejprimocarejsi by bylo napsat si na to storku. Musel by sis pohlidat ze nikdo nebude primo updatovat/deletovat ale to se da, dulezity je ze nebudes muset vsude opisovat tu kopirovaci logiku. Na chytrejsi db by se to i nechalo vynutit pravama. Storka je lepsi nez trigger pacz tam muzes napsat slozitejsi logiku a je lip videt co to dela.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
14.1.2015 19:23 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Audit trails nad jedinou MySQL tabulkou?
Trigger s insertem do další tabulky. Obojí s právy jiného uživatele, aby se se záznamy nedalo manipulovat.
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.