Si j'ai bien compris le cas, il suffit de mettre une clé étrangère sur la table LINK pointant vers la table CAT sur le champs id_cat -> id et en précisant qu'à la suppression d'un enregistrement de CAT il faut effacer les enregistrements de LINK.
C'est une fonction standard, il faut que les tables soit sur le moteur InnoDB et mettre la clé étrangère en mode ON DELETE CASCADE (recherche la syntaxe je ne la connais pas de tête), ce qui fait que si tu efface un enregistrement dans CAT, MYSQL va effacer tous les "enfants" de cet enregistrement par cascade...
Tu as aussi l'option RESTRICT qui t'interdit de supprimer un enregistrement qui aurai des enfants, SET NULL qui change à NULL les id_cat des enfants orphelins après suppression et NO ACTION dont le sens m'échappe un peu.
Ces options sont possibles aussi avec un UPDATE qui ne supprimerai pas ton enregistrement mais le modifierai simplement.
voir http://dev.mysql.com/doc/refman/5. [...] aints.html
Message édité par uncle buzz le 17-04-2008 à 11:54:26