![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
champomy62
est-ce normal qu'il y ait pas une contrainte dans l'association CLOS qui vérifie que la key {EmployeId, ProjetId} existe dans l'association EnCours ?
Passons au niveau relationnel. Supposons que Raoul soit affecté au projet DVP depuis le 20 mars 2015. Quand il en aura fini, disons aujourd’hui 3 juin 2015, on ajoutera un tuple <'Raoul', 'DVP', '2015-03-20', '2015-06-03'> dans la table CLOS et on supprimera dans la table EN_COURS le tuple <'Raoul', 'DVP', '2015-03-20'>. A défaut, si l’on vous suivait, il ne faudrait rien supprimer dans cette table, d’où génération d’une contradiction (à moins qu’on ne se situe dans un monde quantique ^^) : d’une part Raoul en aura fini avec le projet DVP depuis le 3 juin 2015 et paradoxalement, à cette date, il serait encore actif sur ce projet...
En fait, il faudrait mettre en œuvre une contrainte d’exclusion :
Si on veut affecter Raoul au projet DVP à une date D, ça n’est possible que s’il n’existe pas dans la table CLOS une période [Dd,Df] (où Dd = date de début et Df = Date de fin), pendant laquelle Raoul a été affecté à DVP, telle que D ≤ Df.
Partager