Sweaty Imposter

Hard Delete Row Versus Soft Delete (deleted_at Flag)

TradeoffMidSeniorUpdated

User requests account deletion in a system that powers downstream analytics.

Short answer: Hard delete row. GDPR/privacy expectations require actual removal of personal data.

The Two Options

A

Hard delete row

B

Soft delete (deleted_at flag)

Drill This: Your Pick First

The Better Pick

Option A

Hard delete row

GDPR/privacy expectations require actual removal of personal data. Soft delete keeps the data, which becomes a liability.

When the Other One Wins

Soft delete (deleted_at flag)

For business documents (invoices, audit records) where you must retain history, soft delete with role-based visibility is correct.