Hard delete entity zničí navázanou historii objednávek
import { Aside } from ‘@astrojs/starlight/components’;
Symptom
Sekce “Symptom”Smazání entity (např. autora) kaskádově smaže navázané záznamy (díla) a ztratí se historie objednávek — položky v order_items ztratí referenci.
Root cause
Sekce “Root cause”Hard DELETE + nullování FK v order_items zničí auditní stopu. Záznamy potřebné pro historii nenávratně zmizí.
Fix
Sekce “Fix”Soft-delete vzor: místo DELETE nastav deleted_at/deactivated_at. Public views filtrují WHERE deleted_at IS NULL, admin vidí vše, FK i historie zůstávají.
-- místo: DELETE FROM authors WHERE id = $1;UPDATE authors SET deleted_at = now() WHERE id = $1;Jak se tomu vyvarovat v jiných systémech
Sekce “Jak se tomu vyvarovat v jiných systémech”- Detection: projdi
DELETEaON DELETE CASCADEna entitách navázaných na finance. - Anti-pattern: kaskádové mazání přes hranici finanční/auditní historie.
- Lepší přístup: soft-delete + filtrované views; fyzicky maž jen co není referencované z historie.