Politique Soft Delete
Utiliser les soft deletes pour les enregistrements qui peuvent être référencés après suppression.
Utiliser soft deletes pour
- Utilisateurs
- Rôles et permissions (quand référencés historiquement)
- Applications et services
- Imports, exports, runs de parsing quand l'historique métier compte
- Enregistrements admin configurables
Éviter les soft deletes pour
- Enregistrements pivot purs sans valeur d'audit
- Tables de cache temporaires
- Logs append-only immutables où la suppression est interdite
Règles
- Ajouter
deleted_atviaSoftDeletes - Utiliser
withTrashed()uniquement quand explicitement requis - Considérer les index uniques avec comportement soft delete
- Ne jamais supprimer définitivement des enregistrements métier sensibles sans approbation
Implémentation
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
}
// Migration
$table->softDeletes();