[MySQL] Automatisches Löschen durch Eintreffen einer Bedingung möglich?

Gast #2147627
Lesenswert?

Ich versuche mein Problem mal möglichst einfach darzustellen:

NUTZER können OBJEKTE auf EINHEITEN anwenden. Aus Statistikgründen 
möchte ich mir merken, welcher Nutzer welches Objekt auf welche Einheit 
angewendet hat.
Ich habe nun eine Tabelle der folgenden Art (vereinfacht):

Tabelle OBJEKTE_BENUTZT:

id | objekt_id | benutzt_von | angewendet_auf | timestamp

benutzt_von ist ein Fremdschlüssel auf den Nutzernamen in der 
Nutzertabelle und wird auf NULL gesetzt wenn der Nutzer gelöscht wird.
(ON DELETE SET NULL)

angewendet_auf ist ein Fremdschlüssel auf die Einheiten-ID in der 
Einheitentabelle und wird auf NULL gesetzt wenn die Einheit gelöscht 
wird.
(ON DELETE SET NULL)

Das mache ich weil ich mir die Statistik sowohl pro Nutzer als auch pro 
Einheit merken will, und das eine auch ohne das andere existieren kann, 
da Einheiten unter Nutzern gehandelt werden können.

(Wieviele OBJEKTE hat der NUTZER schon eingesetzt?
Wieviele OBJEKTE wurden auf die EINHEIT schon angewendet?)

Erst wenn beides verschwindet - also auf NULL gesetzt wird - hat der 
Eintrag keinen Aussagewert mehr und soll daher aus der Tabelle 
OBJEKTE_BENUTZT gelöscht werden.

Meine bisherige Lösung ist einfach in regelmäßigen Abständen mit einem 
"DELETE FROM OBJEKTE_BENUTZT WHERE benutzt_von = NULL AND angewendet_auf 
= NULL" die überschüssigen Einträge zu löschen.

Daher wollte ich wissen ob es eine Möglichkeit gibt, dass der Eintrag 
automatisch verschwindet, sobald beide Felder auf NULL gesetzt werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren