Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak pernah menghapus entri? Ide bagus? Biasa?

Di salah satu database kami, kami membedakan antara transactional dan dictionary catatan.

Dalam beberapa kata, transactional catatan adalah hal-hal yang Anda tidak dapat memutar kembali dalam kehidupan nyata, seperti panggilan dari pelanggan. Anda dapat mengubah nama penelepon, status, dll., tetapi Anda tidak dapat menutup panggilan itu sendiri.

Dictionary catatan adalah hal-hal yang dapat Anda ubah, seperti menetapkan city ke pelanggan.

Transactional catatan dan hal-hal yang mengarah ke sana tidak pernah dihapus, sedangkan dictionary yang bisa dihapus oke.

Yang saya maksud dengan "hal-hal yang mengarah ke sana" adalah bahwa segera setelah catatan muncul dalam aturan bisnis yang dapat mengarah pada transactional record, record ini juga menjadi transactional .

Seperti, city dapat dihapus dari database. Tetapi ketika muncul aturan yang mengatakan "kirim SMS kepada semua pelanggan di Moskow ", kota-kota menjadi transactional catatan juga, atau kami tidak akan dapat menjawab pertanyaan "mengapa ini SMS dikirim".

Aturan praktis untuk membedakannya adalah ini:apakah ini hanya urusan perusahaan saya?

Jika salah satu karyawan saya membuat keputusan berdasarkan data dari database (seperti, dia membuat laporan berdasarkan beberapa keputusan manajemen, dan kemudian laporan data didasarkan pada menghilang), dianggap OK untuk menghapus data ini.

Namun jika keputusan tersebut memengaruhi beberapa tindakan langsung dengan pelanggan (seperti menelepon, mengacaukan saldo pelanggan, dll.), segala sesuatu yang mengarah pada keputusan ini akan disimpan selamanya.

Ini mungkin berbeda dari satu model bisnis ke model bisnis lainnya:terkadang, mungkin diperlukan untuk merekam bahkan data internal, terkadang tidak apa-apa untuk menghapus data yang memengaruhi dunia luar.

Namun untuk model bisnis kami, aturan dari atas bekerja dengan baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ruby on Rails MySQL #08S01Jabat tangan yang buruk - turunkan versi MySQL?

  2. Pilih catatan dari hari ini, minggu ini, bulan ini php mysql

  3. Situs telah diretas melalui SQL Injection

  4. konversi hasil mysql ke json dengan tipe yang benar

  5. Bisakah Anda menggunakan nilai agregat dalam ON DUPLICATE KEY