W jednej z naszych baz danych rozróżniliśmy transactional
i dictionary
rekordy.
W kilku słowach transactional
rekordy to rzeczy, których nie można cofnąć w prawdziwym życiu, na przykład telefon od klienta. Możesz zmienić nazwę dzwoniącego, status itp., ale nie możesz odrzucić samego połączenia.
Dictionary
rekordy to rzeczy, które możesz zmienić, takie jak przypisanie city
do klienta.
Transactional
rekordy i rzeczy, które do nich prowadzą nigdy nie zostały usunięte, podczas gdy dictionary
te można usunąć w porządku.
Przez „rzeczy, które do nich prowadzą” rozumiem, że gdy tylko rekord pojawi się w regułach biznesowych, co może prowadzić do transactional
rekord, ten rekord również staje się transactional
.
Na przykład city
można usunąć z bazy danych. Ale kiedy pojawiła się reguła „wyślij SMS
do wszystkich klientów w Moskwie ”, miasta stały się transactional
rekordy lub nie bylibyśmy w stanie odpowiedzieć na pytanie „dlaczego ten SMS
zostać wysłany”.
Ogólna zasada rozróżniania była następująca:czy to tylko sprawa mojej firmy?
Jeśli jeden z moich pracowników podjął decyzję na podstawie danych z bazy danych (np. zrobił raport, na podstawie którego została podjęta jakaś decyzja kierownictwa, a następnie raport z danymi zniknął), uznano, że usunięcie tych danych jest w porządku.
Ale jeśli decyzja wpłynęła na pewne natychmiastowe działania z klientami (takie jak dzwonienie, mieszanie się z saldem klienta itp.), wszystko, co doprowadziło do tych decyzji, zostało zachowane na zawsze.
Może się to różnić w zależności od modelu biznesowego:czasami może być wymagane rejestrowanie nawet danych wewnętrznych, czasami można usunąć dane, które wpływają na świat zewnętrzny.
Ale w naszym modelu biznesowym powyższa reguła działała dobrze.