Salut,
Si j'ai bien compris ta demande, j'aurai plutôt fait comme ça :
[CLIENT]---[APPELER]---[AGENCE]---[PROGRAMMER]---[MISSION]---[NECESSITER]---[EQUIPEMENT]
Comme ça, tu peux avoir un client qui appelle 1,n agences, chaque agence peut par la suite programme 1,n missions, et chaque mission necessite 1,n équipements (un équipement peut être un soldat ou un appareil spécifique, à toi de voir).
Les clés primaires et étrangères sont assez simple à définir :
Client --> PK : Id_Client
Agence --> : PK : Id_Agence
Mission --> PK : Id_Mission
Equipement --> Id_Equipement
Appeler --> PK : Id_Appel, FK : Id_Client, Id_Agence
Programmer --> PK : Id_Programme, FK : Id_Agence, Id_Mission
Necessiter --> PK : Id_Necessite, FK : Id_Mission, Id_Equipement
PK : Primary Key (clé primaire), FK : Foreign Key (clé étrangère).
Les relations sont seraient de type 1,n.
Le lien n'est pas direct entre le client et la mission, puisque comme tu le dis, le client a recours à l'agence pour faire effectuer une mission.
Ta phrase : "Les missions comprendront un identifiant client. Chaque client aura un identifiant agence." n'est pas très logique...
Dans les tables APPELER, PROGRAMMER et NECESSITER, tu peux mettre des champs qui qualifient les données, par exemple dans la table APPELER, tu peux mettre Date_Appel, qui te permet de savoir quand un CLIENT a appelé une AGENCE. Dans la table NECCESITER, tu peux ajouter le champs Quantite, ça te permet de savoir qu'une MISSION necessite Quantite d'EQUIPEMENT...
Bon courage,
Message édité par Tibar le 06-01-2009 à 18:57:35