Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access.

Réponse
 
Outils de la discussion
Vieux 13/08/2008, 22h02   #1 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 28
Par défaut Base de données gestion formation

Bonjour, je suis nouveau sur ce forum et je demande votre aide svp!

Voila mon problème: Je travaille pour une compagnie de formation et on m'a demandé de créer une base de données afin d'enregistrer les formations données. Exemple, quand on donne une formation, nous remplissons une feuille de liste de présence avec le titre du cours, le code de cours, la date et l'heure, le formateur et son matricule, le centre de formation impliqué ainsi que le local . Puis nous inscrivons le nom du participant, son matricule, l'usine d'ou il vient et il signe cette feuille comme preuve de sa participation à cette formation. Mon patron voudrait qu'après chacune formation, nous ajoutions les informations dans la base de données afin d'avoir un suivi sur QUI a suivi QUELLE formation exactement. Donc, un participant pourra suivre plusieurs formation, donnés par différents formateurs à différents endroits.

J'ai pensé faire genre 6 tables : Employés, Cours, Endroit, Formateur, Période, Résultat mais je ne suis pas sur si c'est justifié. J'aimerais svp votre aide sur quelle table je devrais faire, Je joint un exemple de feuille de présence pour vous donné une idée des informations . Dite le moi si vous avez besoin de plus d'informations! Et merci à l'avance pour votre aide!
Fichiers attachés
Type de fichier : doc présence vierge.doc (54,5 Ko, 5 affichages)
Sixers33 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/08/2008, 22h25   #2 (permalink)
Membre régulier
 
Date d'inscription: juillet 2008
Messages: 117
Par défaut

Bonjour

Ta base de donnees n'est pas si complexe.

Dans tes tables, je remplacerais Endroit avec Centre de Formation (Centre si tu as besoin de faire court).

A quoi te sert Periode? Dans la fiche ou dans ta description je ne vois pas l'interet de cette table.

Maintenant que tu as tes tables, tu dois remplir leur champs. Dis-nous ce que tu penses mettre.
bredelet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/08/2008, 22h32   #3 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 28
Par défaut

Merci pour la réponse!

En fait, Période était pour la date et l'heure de la formation, mais je pourrais peut-etre ajouter ces infos sous Cours Je pense a mes champs et je vous en reparle!
Sixers33 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/08/2008, 22h40   #4 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 342
Envoyer un message via MSN à CinePhil
Par défaut

Quand on se lance dans la création d'une base de données, il faut commencer par la CONCEPTION. Tiens ! C'est justement le forum dans lequel tu postes !

1) A partir du cahier des charges, déterminer quelles sont les entités à gérer.
Au vu de ce que tu as écrit, je vois des :
- Participants
- Formateurs
- Cours
- Centres de formation
- Locaux

J'ai à peu près la même liste que la tienne :
Citation:
Employés, Cours, Endroit, Formateur, Période, Résultat
La période et le résultat sont des attributs d'une formation.

2) Etablir les associations entre les entités.
La partie importante de ton texte en ce domaine est la suivante :
Citation:
QUI a suivi QUELLE formation exactement. Donc, un participant pourra suivre plusieurs formation, donnés par différents formateurs à différents endroits.
a) "Qui a suivi quelle formation / un participant pourra suivre plusieurs formation"
En disant ça autrement, un Employé peut ou pas suivre jusqu'à plusieurs Cours.
Nous avons donc l'association :
Employés -0,n----Suivre----0,n- Cours

b) "donnés par différents formateurs à différents endroits"
Un détail qui a son importance et qui n'est pas super clair dans ta description :
Est-ce que 1 formation = 1 cours ?
Pour le moment je suppose que oui.
Nous avons ici deux associations :
- Formateur -0,n----Délivrer----0,n- Cours
- Cours -0,n----Se dérouler----0,n- Lieux

J'arrête là pour ce soir et te laisse continuer à réfléchir.
Si tu es perdu, n'hésite pas à consulter la méthode Merise.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/08/2008, 23h21   #5 (permalink)
Membre régulier
 
Date d'inscription: juillet 2008
Messages: 117
Par défaut

Oui il faut regarder les relations, mais comme les entites etaient a peu pres bien je ne les ai pas evoquees.

A moins que ca soit reutilise ailleurs, je ne vois pas l'avantage d'avoir les deux tables "Centre de Formation" et "Locaux" car tu vas avoir une relation 1-1 entre les deux.

Par contre tu as retire la table Resultats, je ne suis pas sur d'avoir suivi.
* Quelle est la difference entre Cours et Formation? (l'un pourrait etre pour le cours dispense par le formateur, l'autre pour la formation suivie par un employe)
* Si Resultats est un attribut de Formation, alors il doit y avoir une relation 1-n entre Formation et Employe (Participant). En effet un seul attribut ne peut pas contenir tous les resultats de tous les employes qui ont suivi le cours. Donc un enregistrement de Formation correspond a un seul employe.

Ma proposition est au contraire de garder une table separee pour les resultats, avec une relation 1-n entre Resultat et Cours ainsi qu'une relation 1-n entre Resultat et Employe. Il y a aussi une relation 1-n entre Cours et Formateur, une relation 1-n entre Cours et Centre de Formation et une relation n-n entre Cours et Employe (plusieurs employes assistent a un cours, chaque employe suit plusieurs cours).
bredelet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 09h14   #6 (permalink)
Responsable MSOffice
 
Avatar de Lou Pitchoun
 
Date d'inscription: février 2005
Localisation: Au soleil, Made In Marseille
Âge: 30
Messages: 5 152
Envoyer un message via MSN à Lou Pitchoun
Par défaut

Salut,

Tu devrais commencer par regarder l'index Access.

Tu y aurais trouvé 2 super articles sur la gestion de planning.... de formation !! qui peuvent te mettre sur la voie pour créer la base.

http://jeannot45.developpez.com/arti...stionplanning/
http://jeannot45.developpez.com/arti...ionplanningv2/

__________________
Responsable Office
Futurs Modérateurs, Rédacteurs : We need you

Access : Les Cours, Les Sources et Les FAQs Office
Avant de poster : les choses importantes à lire pour la bonne tenue du forum.
sinon

Ma boite à MPs n'est pas l'annexe du forum Le complément BouleDeCristal n'existe pas encore !!!
Lou Pitchoun est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 14h32   #7 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 28
Par défaut

Merci pour votre aide, cela devient de plus en plus clair!

Voici alors mes tables/champs que j'ai pensé:

Participants (Matricule, Prénom, Nom, Usine/service, commentaires)

Cours (Code_cours, Titre cours, Session, Durée, Date, Heure)

1ière question : Je pourrais donner le même cours à une autre date et heure de cette façon?

Je continue

Centre (ID, Usine, Édifice, Local)

Formateurs (ID, Prénom, Nom)

Résultats (Rés. théorique, Rés. pratique, commentaires)

Question : Je doit donner une clé pour cette table? si oui je ne voit pas quoi mettre)

Maintenant, si vous pensez que cette structure est bonne, est-il possible d'avoir un formulaire ou j'indique le cours avec TOUS les participants d'un coup? (Un genre de champ "multi-entrées") Et si j'utilise cette structure et que je donne le même cours à deux dates différentes, ils se comptabiliseront ensemble ou seront deux cours distincts?

Encore une fois merci pour votre aide!
Sixers33 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 14h50   #8 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 28
Par défaut

Voici aussi les relations que j'ai pensé:

Cours --N--------1-- Formateurs (Un cours est donné par un seul formateur à la fois, mais un formateur peut donner plusieurs cours)

Cours --N--------1-- Résultats

Cours --N--------1-- Centre (Le même cours peut être donné a plusieurs endroits, MAIS a un seul a la fois)

Cours --N--------N-- Participants

Participants --N--------1-- Résultats


Cela a du sens vous croyez?
Sixers33 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 15h05   #9 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 28
Par défaut

Après analyse, voici mon questionnement :

Étant donné que le même cours peut être donné à des dates différentes, je devrais alors faire une table horaire avec les champs Date et heure non? avec comme relations :

Cours --N--------1-- Horaire



Ca fait beaucoups de questions!
Sixers33 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 15h31   #10 (permalink)
Membre régulier
 
Date d'inscription: juillet 2008
Messages: 117
Par défaut

Si "Code cours" est le meme pour un cours donne a deux dates differentes, alors tu ne peux pas l'utiliser comme clef avec ton schema. Deux options:

1- Ajoute un compteur a la table et utilise-le comme clef
2- Utilise Code cours + Date + Heure comme clef (ou Code cours + Session si c'est unique)

Pour Resultat, la clef peut etre un compteur ou bien composee de Matricule participant, ID formateur et ID cours.

Pour le formulaire oui c'est possible.
bredelet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 15h42   #11 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 342
Envoyer un message via MSN à CinePhil
Par défaut

Moi je différencierais le cours de la session de formation.
Un cours est un enseignement donné.
Une session de formation est un cours donné à une certaine date, par un certain formateur, à un certain nombre de participants, dans un certain lieu.

Donc on aurait plutôt les tables :
Cours (Code_cours, Titre cours, Durée, ...)
Session(Session_Id, Session_Date, Session_Heure, Session_FK_Local, Session_FK_Formateur_ID, ...)
Participer(Participer_FK_MatParticipant, Participer_FK_Session_Id, Participer_Resultat, ...)

Par ailleurs, si tu as plusieurs locaux dans tes centres de formation, il te faut éclater en deux tables. C'est pour ça que j'ai mis ci-dessus la clé étrangère 'Session_FK_Local'.

Sinon tu es sur la bonne voie.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 16h03   #12 (permalink)
Membre régulier
 
Date d'inscription: juillet 2008
Messages: 117
Par défaut

D'accord en general avec CinePhil.
bredelet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 16h05   #13 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 28
Par défaut

Ouais, c'est bon d'avoir une table "Session"
Alors je recapitule:


Participants (Matricule, Prénom, Nom, Usine/service, commentaires)

Cours (Code_cours, Titre cours, Session, Durée)

Formateurs (ID, Prénom, Nom)

Résultats (Rés. théorique, Rés. pratique, commentaires)

Session (ID_Session, Participants, Cours,Formateurs, Date, heure, Usine, Édifice, Local)

Je n'ai donc plus besoin de la table Centre, puisque la date, l'heure, l'usine, l'édifice et le local sera unique pour chaque Session

Ca commence a prendre forme et je vous en remerçie!

Vous me perdez avec votre table PARTICIPER!!!!
Sixers33 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 16h11   #14 (permalink)
Membre régulier
 
Date d'inscription: juillet 2008
Messages: 117
Par défaut

L'avantage de la table Centre c'est que tu n'as pas a repeter "Usine, Edifice, Local" pour toutes les sessions situees dans le meme local. A toi de voir.
bredelet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 16h25   #15 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 342
Envoyer un message via MSN à CinePhil
Par défaut

Ca ne me semble toujours pas top !
Citation:
Envoyé par Sixers33 Voir le message
Cours (Code_cours, Titre cours, Session, Durée)
Supprime la colonne Session.

Citation:
Session (ID_Session, Participants, Cours,Formateurs, Date, heure, Usine, Édifice, Local)

Vous me perdez avec votre table PARTICIPER!!!!
Comment individualises-tu les participants en les mettant dans la session ?
Tu es bien obligé de créer une association entre la session et les participants.
C'est le but de la table Participer.
Et du coup les résultats de la formation reçue par un participant lors d'une session sont des données qui sont portées par l'association Participer et donc incluses dans la table Participer.
Donc vire la table Résultats.

Citation:
Je n'ai donc plus besoin de la table Centre, puisque la date, l'heure, l'usine, l'édifice et le local sera unique pour chaque Session
Ce qui compte pour une session, c'est le plus petit élément de localisation, donc le local. Par contre, comme c'est une clé étrangère dans la table Session, il vaut mieux pour la lecture que tu associe à cet Id de local un nom et probablement un rattachement à un édifice --> usine.
Si la notion de centre de formation n'a pas de raison d'être parce qu'elle se rattache toujours à une partie d'une usine, vire là.
Mais peut-être que c'est une notion plus large, du genre "Centre de Formation du Sud-Ouest" situé dans l'usine de Toulouse mais qui couvre assure aussi les formations pour les usines de Bordeaux, Pau et Tarbes.
A toi de voir ce que tu as besoin de gérer.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide