sql >> Databasteknik >  >> RDS >> Mysql

MySQL med Soft-Deletion, Unique Key och Foreign Key Constraints

Lägg till unika begränsningar för fält (användarnamn, borttaget) Ändra fälttyp för "borttaget" till INTEGER.

Under raderingsoperationen (det kan göras i triggern, eller i en del av koden där du faktiskt behöver ta bort användare) kopiera värdet av id-fältet till borttaget fält.

Detta tillvägagångssätt låter dig:

  • behåll unika namn för aktiva användare (raderad =0)
  • tillåt radering av användare med samma användarnamn flera gånger

Fältet "Deleted" kan inte ha endast 2 värden eftersom följande scenario inte fungerar:

  1. du skapar användaren 'Sam'
  2. Användaren Sam har tagits bort
  3. Du skapar en ny användare med användarnamnet 'Sam'
  4. Du försöker ta bort användare med användarnamnet "Sam" - misslyckas. Du har redan record userName ='Sam' och raderad ='1'


  1. apache mysql - paket ur funktion på 3306

  2. Identifiera och hantera uppdragskritiska åtkomstapplikationer under ett utvecklingsprojekt

  3. Hur man säkrar Galera Cluster - 8 tips

  4. Vad är det för fel på min SQL här? #1089 - Felaktig prefixnyckel