Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nigdy nie usuwać wpisów? Dobry pomysł? Zwykły?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie się z mysql w xampp bez hasła

  2. Jak wyświetlać albumy obrazów w postach? [przy użyciu tylko PHP i MYSQL]

  3. Porównywanie ciągów, z których jeden ma wcześniej puste spacje, a drugi nie

  4. Włącz tryb binarny podczas przywracania bazy danych ze zrzutu SQL

  5. Czy Hibernate może współpracować ze składnią ON DUPLICATE KEY UPDATE w MySQL?