sql >> Databáze >  >> RDS >> Mysql

Nikdy nemazat záznamy? Dobrý nápad? Obvyklý?

V jedné z našich databází jsme rozlišovali mezi transactional a dictionary záznamy.

Pár slovy, transactional záznamy jsou věci, které v reálném životě nelze vrátit zpět, jako je hovor od zákazníka. Můžete změnit jméno volajícího, stav atd., ale samotný hovor nemůžete odmítnout.

Dictionary záznamy jsou věci, které můžete změnit, jako je přiřazení city zákazníkovi.

Transactional záznamy a věci, které k nim vedou nebyly nikdy odstraněny, zatímco dictionary ty by mohly být v pořádku smazány.

"Věci, které k nim vedou" myslím, že jakmile se záznam objeví v obchodních pravidlech, může to vést k transactional záznam, tento záznam se také stane transactional .

Třeba city lze vymazat z databáze. Když se ale objevilo pravidlo, které říkalo „odeslat SMS všem zákazníkům v Moskvě “, města se stala transactional záznamy také, nebo bychom nebyli schopni odpovědět na otázku „proč tato SMS nechat poslat."

Základním pravidlem pro rozlišení bylo toto:je to pouze záležitost mé společnosti?

Pokud se některý z mých zaměstnanců rozhodl na základě dat z databáze (např. udělal zprávu, na základě které bylo učiněno nějaké rozhodnutí vedení, a poté zpráva s údaji na základě zmizela), bylo považováno za v pořádku tato data smazat.

Pokud však rozhodnutí ovlivnilo některé okamžité akce se zákazníky (jako je volání, manipulace se zůstatkem zákazníka atd.), vše, co k těmto rozhodnutím vedlo, bylo navždy uchováno.

Může se lišit od jednoho obchodního modelu k druhému:někdy může být nutné zaznamenávat i interní data, někdy je v pořádku smazat data, která ovlivňují vnější svět.

Ale pro náš obchodní model pravidlo shora fungovalo dobře.



  1. Jak funguje TIMEDIFF() v MariaDB

  2. Rails 3, ActiveRecord, PostgreSQL - příkaz .uniq nefunguje?

  3. zachytit výjimku DB v aplikaci JSF+EJB

  4. Jak zlepšit tento dotaz MySQL pomocí spojení?