Skip to content
Preptima
mediumDesignScenarioMidSeniorStaff

Every table in this schema soft-deletes with a deleted_at column. A year in, what has that cost you?

5 min readUpdated 2026-08-15Target archetype: Big Tech, Enterprise Captive, Product Startup

Answer

Short answer

Soft deletion is a modelling decision rather than a convenience: it silently breaks uniqueness, leaves foreign keys pointing at rows that are logically gone, and adds a predicate every future query has to remember.

Was this answer helpful?

Likely follow-ups

  • A customer exercises a right to erasure. What does this design have to do that it currently cannot?
  • How would you migrate a table that already holds two years of soft-deleted rows into your model?
  • Who is permitted to read the deleted rows, and at which layer do you enforce that?
  • Half the table is dead rows. What does that do to the planner's estimates and to your indexes?

Related questions

Further reading