11-07-2011, 10:06 PM
Je pense que CHECK ne permet que de faire des contrôles sur les colonnes (éventuellement plusieurs) de la table elle-même.
Et attention avec les contraintes check, si tu utilises mysql, elles sont purement ignorées (cf doc en anglais, la traduction française laisse penser qu'innodb les gère).
Les triggers doivent permettre de faire ce que tu veux, dans une certaine mesure. Il y a un article sur developpez.com. Par contre, je resterais prudent, le trigger va être déclenché quand tu manipuleras t2, pas les autres tables. Donc il serait possible de modifier un enregistrement de t0 (ou de t1) et de rendre invalide des enregistrements de t2; sauf à mettre des triggers sur chaque table.
Et attention avec les contraintes check, si tu utilises mysql, elles sont purement ignorées (cf doc en anglais, la traduction française laisse penser qu'innodb les gère).
Les triggers doivent permettre de faire ce que tu veux, dans une certaine mesure. Il y a un article sur developpez.com. Par contre, je resterais prudent, le trigger va être déclenché quand tu manipuleras t2, pas les autres tables. Donc il serait possible de modifier un enregistrement de t0 (ou de t1) et de rendre invalide des enregistrements de t2; sauf à mettre des triggers sur chaque table.