Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không bao giờ xóa các mục nhập? Ý tưởng tốt? Bình thường?

Trong một trong các cơ sở dữ liệu của mình, chúng tôi đã phân biệt giữa transactionaldictionary hồ sơ.

Trong một vài từ, transactional hồ sơ là những thứ mà bạn không thể quay lại trong cuộc sống thực, chẳng hạn như cuộc gọi từ khách hàng. Bạn có thể thay đổi tên, trạng thái, v.v. của người gọi, nhưng bạn không thể loại bỏ chính cuộc gọi đó.

Dictionary bản ghi là những thứ bạn có thể thay đổi, chẳng hạn như gán city cho khách hàng.

Transactional hồ sơ và những thứ dẫn đến chúng không bao giờ bị xóa, trong khi dictionary những cái đó có thể bị xóa.

Bởi "những điều dẫn đến chúng", ý tôi là ngay khi hồ sơ xuất hiện trong các quy tắc kinh doanh, điều này có thể dẫn đến transactional bản ghi, bản ghi này cũng trở thành transactional .

Như, một city có thể bị xóa khỏi cơ sở dữ liệu. Nhưng khi một quy tắc xuất hiện cho biết "gửi SMS cho tất cả khách hàng ở Moscow ", các thành phố trở thành transactional cũng như hồ sơ, hoặc chúng tôi sẽ không thể trả lời câu hỏi "tại sao lại có SMS này được gửi đi ".

Một nguyên tắc chung để phân biệt là: đó có phải chỉ là công việc kinh doanh của công ty tôi không?

Nếu một trong những nhân viên của tôi đưa ra quyết định dựa trên dữ liệu từ cơ sở dữ liệu (chẳng hạn như anh ta lập báo cáo dựa trên đó đưa ra một số quyết định quản lý và sau đó báo cáo dữ liệu dựa trên đó đã biến mất), thì việc xóa những dữ liệu này được coi là OK.

Nhưng nếu quyết định đó ảnh hưởng đến một số hành động tức thì với khách hàng (như gọi điện, gây rối với số dư của khách hàng, v.v.), thì mọi thứ dẫn đến những quyết định này sẽ được lưu giữ mãi mãi.

Nó có thể thay đổi từ mô hình kinh doanh này sang mô hình kinh doanh khác:đôi khi, có thể được yêu cầu ghi lại ngay cả dữ liệu nội bộ, đôi khi cũng có thể xóa dữ liệu ảnh hưởng đến thế giới bên ngoài.

Nhưng đối với mô hình kinh doanh của chúng tôi, quy tắc từ trên đã hoạt động tốt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL chỉ chọn các hàng có giá trị tối đa trên một cột

  2. Tìm trùng lặp phạm vi ngày trong cùng một bảng, dành cho người dùng cụ thể MySQL

  3. Cách tìm số lượng kết nối cơ sở dữ liệu mở đang hoạt động trong H2 / MySQL

  4. Cách tạo đường hầm ssh trong ruby ​​và sau đó kết nối với máy chủ mysql trên máy chủ từ xa

  5. Làm cách nào để áp dụng phương thức bindValue trong mệnh đề LIMIT?