Un cas que je vois souvent dans les schémas proposés dans ce forum ou ailleurs : la cardinalité minimale à 1 de chaque côté d'une association.
Exemple :
"Un service comprend au moins un employé et un employé est affecté à un seul service."
De la règle de gestion ci-dessus, il découle le MCD :
Employé -1,1----Affecter----1,n- Service
Lorsque que je vais implanter ce schéma :
- Si je crée un nouvel employé, je devrai renseigner à quel service il est affecté. Comme il a été embauché pour un nouveau service qui n'existe pas encore dans la BDD, je ne peux pas.
Tant pis, je vais d'abord créer le service...
- Si je crée un service, je devrai renseigner en même temps au moins une personne de ce service. Comme c'est un nouveau service et que son chef vient d'être embauché et n'est pas encore enregistré dans la table des employés, je ne peux pas.
C'est le serpent qui se mord la queue à force de se demander qui de l'oeuf ou de la poule a commencé !
Bien sûr, un trigger pourra gérer ce cas mais il est plus simple de transformer la règle de gestion trop stricte en :
"Un service peut comprendre plusieurs employés et un employé est affecté à un seul service."
Ce qui donne le MCD :
Employé -1,1----Affecter----0,n- Service
Et là je peux créer tous les services de l'entreprise avant de leur affecter les employés, ce qui est quand même plus pratique et correspond davantage à la réalité d'un nouveau système d'information.
Partager