7844 sujets

Développement web côté serveur, CMS

Bonjour à tous
Pour décrire une œuvre musicale, j'utilise son auteur (authorID), l’œuvre elle-même (workID) et elle est éventuellement composée de plusieurs "mouvements" (mvtID).
Je mets tout ça dans une table Works, avec un index unique sur (authorID, workID, mvtID). Par convention l’œuvre elle même a un mvtID = ''.
Dans un programme de concert, on a des "éléments", ou "pièces" (ProgItem) qui référencent des œuvres ou des mouvements, bien souvent un concert ne comporte pas toute l’œuvre, mais seulement certains mouvements.

La table des éléments ProgItems comporte les éléments d'un concert, en gros
- la référence au programme (progID)
- le numéro d'ordre de la pièce dans le concert (rank)
- les informations authorID, workID, mvtID correspondant à l"œuvre dans la table Works.

Je veux maintenant ajouter des contraintes dans la table ProgItems :
1) progID + rank doit être unique
2) progID doit correspondre à une entrée de a table Programs
3) l'ensemble authorID, workID, mvtID doit correspondre à une entrée de la table Works

Pas de difficulté sur les contraintes 1 et 2, mais je ne trouve pas comment faire pour décrire la contrainte 3.
Merci de votre aide.