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