Design Patterns #3: is_deleted / last_modified

is_deleted

Nikdy nemažeme záznamy z databáze. Místo toho záznamy označíme jako smazané, včetně timestamp, kdy ke ‘smazání’ došlo.

Proč?

Smazáním záznamů v databázi může dojít k porušení referenční integrity (např. smazáním zákazníka s existujícími objednávkami). Nekonzistentní data nutně způsobí celou řadu problémů, jako třeba zkreslení v libovolných metrikách počítaných z nekompletních dat.

Jak odhalíme, že některé záznamy zmizely?

Pokud dojde ke smazání záznamů ve zdrojových datech, smazané záznamy můžeme doplnit na základě porovnání s předchozí verzí a označit je is_deleted flagem, například takhle (viz obrázek):

last_modified

Podobně jako is_deleted se hodí, aby databáze ukládala timestamp poslední změny záznamu. Pokud pracujeme inkrementálně, můžeme pomocí last modified timestampy snadno filtrovat nové záznamy, i ty, které se změnily. 

Proč?

Pokud někdo upraví historická data, třeba chybně zaúčtovanou fakturu, vyhneme nekonečnému hledání neexistujících chyb, protože snadno zjistíme, že data se změnila. Některé typy chyb je ideální řešit opravným zápisem a historická data neměnit, podobně jako v účetnictví.

Petra

Máte k článku nějaké otázky nebo připomínky? Klidně mi napište, ráda to s Vámi proberu :-)

Petra Horáčková
datový detektiv
LinkedIn

Design Patterns #1: Referenční integrita a chybějící hodnoty

Design Patterns #1: Referenční integrita a chybějící hodnoty

Design Patterns - Prvními v řadě projdeme Referenční integrita a chybějící hodnoty. A proč? Protože když si připravujeme raw data pro analýzu, taková sada best practices se sakra hodí! Ono v podstatě každý jednoduchý trik, který nám ulehčí práci je dost vítaný. Minimalizuje čas strávený uklízením nepořádku, usnadní tvorbu metrik a reportů a nám, datovým detektivům, pomohou odhalit nesrovnalosti na první pohled. 

Design Patterns #2: měna účetnictví / měna operace

Design Patterns #2: měna účetnictví / měna operace

Fungujete v několika měnách najednou? Pak je potřeba u každého záznamu vždy uvádět měnu účetnictví i měnu operace/transakce spolu s kurzem v době vzniku události. Proč? Vyhnete se tak nepřesnostem, které vznikají z kurzových rozdílů. Jak si na to šikovně upravit data si ukážeme v článku.