Problème de conceptualisation de MCD

Auteur : Christian Draux

 

Problématique :

Une entreprise réalise des missions à la journée. 2 salariés participent à chaque mission : un chauffeur et un technicien. On dispose de plus de chauffeurs que de techniciens, donc parfois l'équipe se compose de 2 chauffeurs. La table Salariés comprend Numsalarié (numéro automatique), CodeSpécialité (CH001, CH002, etc... pour les chauffeurs TE001, TE002, etc... pour les techniciens), certains salariés ne sont ni chauffeur ni technicien et n'ont donc pas de code Spécialité. La table Missions comprend NumMission (MI001, MI002, etc...), lieu, etc. Quelle organisation des informations des tables et des relations retenir pour obtenir un état (ou une table) avec : DateMission, NumMission, Chauffeur, Technicien/Chauffeur. On souhaite bien sûr éviter dés la saisie des missions qu'un salarié se retrouve un même jour à 2 endroits différents

 

Domaine : Gestion des missions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



Schéma des relations découlant de ce MCD :

 

 

MISSION(NumMission, LieuMission)

SPECIALITE(CodeSpecialite, LibSpécialite)

RANG(#CodeSpecialite, NumRang)

SALARIE(NumSal, NomSal, PrenSal,…, #CodeSpecialite,#NumRang) (codespecialite et numrang seront nuls si le salarié n’a pas de spécialités)

EFFECTUER(#NumSal,#NumMission, Date)

 

Au niveau physique :

Le modèle doit permettre d’éviter qu’un salarié ne se trouve à une date donnée sur deux missions ou plus.

Dans la table RANG, il faut définir la clé primaire sur CodeSpécialité ET NumRang. NumRang ne peut en aucun cas être du type numéroauto car la numérotation est réinitialisée pour chaque spécialité

 

 

A votre avis, la solution proposée est elle conforme aux objectifs assignés à la base de données des missions ?

 

Pour répondre, vous pouvez écrire :

-         A l’auteur du sujet : Christian Draux : chris.draux@free.fr

-         Sur le forum de TICEGESTION.COM : http://www.webdonline.com/fr/services/forums/forums.asp?id=145031

 

Autre solution :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 MLD Relationnel :

MISSION(NumMission, LieuMission)

SPECIALITE(CodeSpecialite, LibSpécialite)

RANG(#CodeSpecialite, NumRang)

SALARIE(NumSal, NomSal, PrenSal,…, #CodeSpecialite,#NumRang) (codespecialite et numrang seront nuls si le salarié n’a pas de spécialités)

EFFECTUER(#NumMission,# Date)

AFFECTER((#NumMission,# Date,NumSalarie)

 

Cette solution équivaut ŕ faire deux associations non hiérarchiques (l’une entre Mission et Date et l’autre entre MISSION, DATE et SALARIE).