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

MySQL với các ràng buộc về xóa mềm, khóa duy nhất và khóa ngoại

Thêm ràng buộc duy nhất trên các trường (tên người dùng, đã xóa) Thay đổi loại trường cho 'đã xóa' thành INTEGER.

Trong quá trình xóa (có thể được thực hiện trong trình kích hoạt hoặc trong một phần mã mà bạn thực sự cần xóa người dùng), hãy sao chép giá trị của trường id vào trường đã xóa.

Cách tiếp cận này cho phép bạn:

  • giữ tên duy nhất cho những người dùng đang hoạt động (đã xóa =0)
  • cho phép xóa những người dùng có cùng tên người dùng nhiều lần

Trường 'Đã xóa' không được chỉ có 2 giá trị vì trường hợp sau sẽ không hoạt động:

  1. bạn tạo người dùng 'Sam'
  2. Người dùng Sam đã bị xóa
  3. Bạn tạo người dùng mới với người dùng Tên 'Sam'
  4. Bạn thử xóa người dùng với userName 'Sam' - không thành công. Bạn đã có bản ghi userName ='Sam' và đã xóa ='1'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buộc MySQL trả về các bản sao từ mệnh đề WHERE IN mà không sử dụng JOIN / UNION?

  2. Theo dõi tiến độ truy vấn dài MySQL

  3. kết nối cơ sở dữ liệu laravel trả về lỗi chỉ mục không xác định

  4. Laravel:đặt hàng ở đâu trong

  5. Ràng buộc khóa chính MySql với tên