Det du kan gøre er at implementere triggere på dine Users
og Team
tabeller, der udføres, når rækker bliver slettet fra enten:
Brugertabel:
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 ;
Tabel for hold:
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 ;
Hvad disse triggere vil gøre, er hver gang en post slettes fra en af disse tabeller, en DELETE
handlingen udføres automatisk på Playlists
tabel ved hjælp af id
der er ved at blive slettet (via en indre join).
Jeg har testet dette, og det fungerer godt.