Bonsoir,
Je reviens sur les règles de gestion des données initiales :
Envoyé par
spring.time
voici les règles régissant les données
Bonne entrée en matière. Mais il faut d’abord donner une définition des concepts (niveau, discipline, option, etc.) et illustrer par l’exemple, car autant de lecteurs de votre message, autant d’interprétations des règles, interprétations qui peuvent ne rien à voir avec la vôtre.
Exemple de règles qui laissent songeur et qui dès le départ soulèvent bien des questions :
« Si l'étudiant est au niveau 5e, il choisit une option parmi 4 ».
Est-ce à dire que les étudiants qui sont à un autre niveau ne sont pas concernés par le système des options ? Qu’ils peuvent choisir les options qu’ils veulent ?
De la même façon, quand vous écrivez :
« Les étudiants des 4 options étudient des disciplines communes et bien sur des disciplines relatives à leurs options ».
Qu’en est-il des étudiants qui ne sont pas du 5e niveau ?
Etc. Illustrez par des exemples.
@ DaizDev
Puisque votre diagramme est au niveau MLD, autant renforcer les contraintes d’inclusion quand on peut le faire par le biais des clés étrangères, c'est-à-dire sans avoir besoin de mettre en œuvre des assertions (SQL) ou à défaut, des triggers. Par exemple, selon votre diagramme, on pourrait insérer dans la table DisciplineCoefficient des triplets {DisciplineId, OptionId, NiveauId} dont la projection {DisciplineId, OptionId} ne soit pas incluse dans la paire {DisciplineId, OptionId} de l’en-tête de la table DisciplineOption ; de la même façon on pourrait insérer dans la table DisciplineCoefficient des triplets dont la projection {NiveauId, OptionId} ne soit pas incluse dans la paire {NiveauId, OptionId} de l’en-tête de la table NiveauOption :
En conséquence, pour bétonner et garantir les contraintes d’inclusion, on peut représenter les choses ainsi :
Je ne préjuge pas ici de l’adéquation du MLD et du MCD proposé par spring.time. Par ailleurs, au stade MCD il n’est pas courant de mettre en œuvre des associations entre associations (DISCIPLINE_COEFFICIENT associant DISCIPLINE_OPTION et NIVEAU_OPTION), même si cela est parfaitement légitime. Mais ceci est une autre histoire.
Mais ces diagrammes expriment-ils les vraies règles de gestion ?
Vous aviez posé la question : « Les coefficients varient-ils en fonction du niveau et de l'option ? »
Réponse de spring.time : « pour les coefficients, ils varient de 1 à 10, et par décision de la direction des études et la direction générale. »
Autrement dit, à ce stade de la discussion, on ne sait toujours pas formellement si les coefficients sont indépendants des niveaux et des options. Mais ensuite, spring.time propose un MCD selon lequel la règle est : Une discipline a exactement un coefficient, ce qui invalide nos diagrammes respectifs en ce qui concerne la table DISCIPLINE_COEFFICIENT.
@spring.time :
C’est bien cela ? Confirmez-vous qu’une discipline a exactement un coefficient, donc que les coefficients sont totalement indépendants des niveaux et des options ?
Partager