Quello che puoi fare è implementare attivatori sui tuoi Users
e Team
tabelle che vengono eseguite ogni volta che le righe vengono eliminate da:
Tabella utenti:
DELIMITER $$
CREATE TRIGGER user_playlist_delete
BEFORE DELETE ON User FOR EACH ROW
BEGIN
DELETE a FROM Playlist a
INNER JOIN UserPlaylist b ON a.id = b.id AND b.userId = OLD.id;
END$$
DELIMITER ;
Tabella della squadra:
DELIMITER $$
CREATE TRIGGER team_playlist_delete
BEFORE DELETE ON Team FOR EACH ROW
BEGIN
DELETE a FROM Playlist a
INNER JOIN TeamPlaylist b ON a.id = b.id AND b.teamId = OLD.id;
END$$
DELIMITER ;
Quello che faranno questi trigger è ogni volta che un record viene eliminato da una di queste tabelle, un DELETE
l'operazione verrà eseguita automaticamente sulle Playlists
tabella utilizzando l'id
che sta per essere eliminato (tramite un inner join).
L'ho testato e funziona benissimo.