sql >> Base de Datos >  >> RDS >> Mysql

MySQL con eliminación temporal, clave única y restricciones de clave externa

Agregue una restricción única en los campos (nombre de usuario, eliminado) Cambie el tipo de campo para 'eliminado' a INTEGER.

Durante la operación de eliminación (se puede hacer en el activador o en parte del código donde realmente necesita eliminar al usuario), copie el valor del campo de identificación en el campo eliminado.

Este enfoque le permite:

  • mantener nombres únicos para usuarios activos (eliminado =0)
  • permitir eliminar usuarios con el mismo nombre de usuario varias veces

El campo 'Eliminado' no puede tener solo 2 valores porque el siguiente escenario no funcionará:

  1. usted crea el usuario 'Sam'
  2. El usuario Sam se eliminó
  3. Usted crea un nuevo usuario con el nombre de usuario 'Sam'
  4. Intenta eliminar al usuario con el nombre de usuario 'Sam' y falla. Ya tiene un registro de nombre de usuario ='Sam' y eliminado ='1'