C'est une question qui semble bonne en surface, mais qui a des implications.
Tout d'abord, vous devez vous assurer qu'après avoir lu l'état de ces relations, personne ne peut les modifier, donc vous devez évidemment utiliser une transaction et verrouiller les lignes en question.
Ensuite, vous avez besoin d'un moyen de déterminer quelles relations vérifier, comme je le vois dans un commentaire ici votre question sur ce qui se passe si quelqu'un ajoute plus tard une nouvelle relation. Vous devez donc interroger le schéma, ou peut-être générer automatiquement ce code à partir du schéma, afin que le mécanisme de détection n'ait besoin de s'exécuter qu'à chaque fois que vous modifiez le schéma.
Maintenant, l'exception que vous obtenez vous semble-t-elle vraiment si chère après cette épreuve ?