sql >> Databáze >  >> RDS >> Oracle

Mám odstranit nebo zakázat řádek v relační databázi?

Pokud nesmažete, vytvoří se nová třída chyb pro všechny budoucí dotazy. Nezapomeňte, že psaní dotazů často provádějí pokročilí uživatelé (tj. neodborníci z oblasti IT) a mladší vývojáři. Nyní tedy každá tabulka, která má neplatná data označená pouze aktivním příznakem BIT, bude od nynějška až do věčnosti potřebovat další AND v klauzuli WHERE pro každý dotaz. To pomůže uživatelům spadnout do jámy neúspěchu místo do jámy úspěchu. Důrazně vám však doporučuji implementovat tyto příznakové systémy, protože bez špatného návrhu není potřeba, aby vývojáři údržby opravovali četné chyby, které to vytvoří.

Jak cenné je mít v tabulce historická data? Pokud se firma dívá dopředu, stará data v tabulkách mohou být jen zátěží – způsobí to problémy při vytváření omezení (všechna omezení budou muset být upravena, aby se vyloučila data, která si přejete, aby tam nebyla). Zajištění kvality dat je komplikované tím, že musíme neustále znovu identifikovat, co je „staré svinstvo, které se bojíme smazat, ale už nikdy nechceme použít nebo aktualizovat“ a nové věci, na kterých nám záleží.

Je to smazáno, protože to byla chyba? Pokud řádek odpovídá nějaké entitě v reálném životě, možná je zajímavé ponechat a nastavit příznak „vypařený“, „mrtvý“, „opustil budovu“. Pokud jste omylem vložili řádek, který neodpovídá žádné entitě v reálném životě, DELETE není špatná věc. Je důležité udržet v tabulce zákazníků imaginární zákazníky, kteří nikdy neexistovali?

A nakonec velkou roli hraje osobnost. Lidé mohou být s daty také sprostí. Pokud si správce dat schovává všechny své noviny před 30 lety a nelíbí se mu mazání dat, možná by se měl ujistit, že rozhoduje o návrhu dat na základě předností a ne na irelevantních osobních preferencích.



  1. DateDiff pro výstup v hodinách a minutách

  2. Použití agregačních funkcí (SUM, AVG, MAX, MIN, COUNT, DISTINCT) v MySQL

  3. Proaktivní kontroly stavu serveru SQL, část 2:Údržba

  4. Nejčastější dotazy k nalezení opravy použité v aplikacích Oracle