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

MySQL z miękkim usuwaniem, unikalnymi kluczami i ograniczeniami klucza obcego

Dodaj unikalne ograniczenie na polach (nazwa użytkownika, usunięte) Zmień typ pola z 'usunięty' na INTEGER.

Podczas operacji usuwania (można to zrobić w wyzwalaczu lub w części kodu, w której faktycznie potrzebujesz usunąć użytkownika) skopiuj wartość pola id do pola usuniętego.

Takie podejście pozwala:

  • zachowaj unikalne nazwy dla aktywnych użytkowników (usunięte =0)
  • zezwól na kilkakrotne usuwanie użytkowników o tej samej nazwie

Pole „Usunięte” nie może mieć tylko 2 wartości, ponieważ następujący scenariusz nie zadziała:

  1. Tworzysz użytkownika „Sam”
  2. Użytkownik Sam został usunięty
  3. Tworzysz nowego użytkownika z nazwą użytkownika „Sam”
  4. Próbujesz usunąć użytkownika o nazwie użytkownika „Sam” — błąd. Masz już rekord userName =„Sam” i usunięty =„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. wstaw polecenie odrzucone w mysql

  2. Połącz się z mysql w kontenerze docker z hosta

  3. Python trudne kodowanie ciągów

  4. konkretna aktualizacja mysql na podstawie grupowania według danych

  5. Dlaczego MySQL podaje błąd Nie wolno zwracać zestawu wyników z funkcji?