|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() ![]() |
Bonjour,
Voila je suis entrain de faire un organigramme pendant mon stage et je construit la base de données sous access (logiciel de l'entrepsise) Je voudrai faire une spécialisation sous une de mes tables mais je ne sait pas comment on peut en modélisé une sous Access alors j'appelle a vous pour m'aider sur se point Merci par avance ... |
|
|
00
|
|
|
#2 | |
![]() ![]() |
Bonjour d'abord,
Citation:
__________________
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 |
|
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() ![]() |
Oui je peut etre plus précis
Je fais un organigramme et pour la gestion du personnel je veux faire une spécialisation pour chef de service et je n'arrive pas à gérer ce problème alors que sur ma feuille sa me parait assez bien ! j'ai donc 2 tables pour le moment(je commence à peine) une service, une employé. Pour le moment j'ai mit une propriété du type booléen pour savoir si l'employé et chef de service ou pas. Il y a aussi une clef etrangère dans la table employé qui fait référence à l'identifiant de la table Service, afin de déterminer le service ou travaille l'employé. Service(num_service(clef primaire), lib_serv, adr_serv, tel_serv, num_chef_serv) Personnel(num_pers(clef primaire), nom_pers, pre_pers, adr_pres, tel_pers, #num_serv) en gros voila pour le moment mes tables j'espere que je suis assez explicatif pour que tu puiss m'aider |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 351 ![]() |
Il ne te manque rien.
Dans la table service et la table personnel la relation num_serv doit être de 1 à plusieurs. Et une requête va permettre d'extraire les données que tu veux. Edité Il y a un champ en trop dans la table service, c'est le num chef de service. Il fait double emploi avec le booléen de la seconde table.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() ![]() |
j'ai fait ma jointure comme tu me le dit mais je ne trouve pas cette requête j'arrive à afficher les employé, ou les chefs de srevice mais pas les employé ac leur chef de service.
Et je ne sais pas comment on fait car chef_serv_pers est un booléen. si tu peut maider pour cette requête sa serait sympa merci pour ta reponse et pour votre aide par avance |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 351 ![]() |
laisse moi 10 min, je te fais un exemple.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Christophe Warin Inscription : octobre 2004 Messages : 8 635 ![]() |
Y a une redondance d'information là.
Le chef de service figure dans la table service, le booleen n'a pas lieu d'exister |
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() ![]() |
oui en faite quand j'ai écrit j'ai du me tromper j'ai combinner les 2 solutions que j'avais |
|
|
00
|
|
|
#9 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 351 ![]() |
Code :
Si le chef_serv_pers est booléen et que tu veux rechercher les chefs de services, il faut mettre le critère sur yes. Pour le reste, avec une jointure, et un simple sélection le tour est joué.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
|
|
#10 | ||
![]() ![]() ![]() Christophe Warin Inscription : octobre 2004 Messages : 8 635 ![]() |
Dans ce cas, il faut supprimer le champ Num_Chef dans la table service.
Mais ça va compliquer les requêtes, obligeant à chaque fois à lister tous les employés pour en extraire le chef du service. Avec le champ en clé étrangère du service, on peut en une seule requête établir la liste des employés ainsi que leur chef Code sql :
|
||
|
|
00
|
|
|
#11 |
|
Membre éprouvé
![]() ![]() |
Merci je vais tester sa toute suite, sinon quel est la meilleur solution pour la suite un propriété de type booléen dans la table personnel ou bien une nouvelle propriété dans la table service avec le numero du personnel qui ai le chef de service ?
|
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 351 ![]() |
Perso, je pencherais pour le Booléen.
Si tu veux tous les chefs de service. Si tu veux ceux qui ne sont pas chef de service. Les personnes d'un même service. C'est plus facile et plus clair pour les requêtes.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#13 | |||
![]() ![]() ![]() Christophe Warin Inscription : octobre 2004 Messages : 8 635 ![]() |
Je pense que les deux se défendent.
Si tu as 2000 employés pour 2 services, tu vas stocker 1998 booléen à faux pour rien Avec le booléen, tu risques d'avoir des services sans chefs, des services avec plusieurs chef, en fait tu ne modélises pas la contraintes "Un service possède un chef". Tu modélises juste "un employé peut être chef de son service" Citation:
Citation:
Citation:
De toute évidence, la table personnel aura plus d'enregistrement que la table service. Vaut t'il mieux parcourir tous les employés pour en trouver les chefs ou bien tous les services et accéder directement au bon employé ? |
|||
|
|
00
|
|
|
#14 | ||
|
Membre éprouvé
![]() ![]() |
Moi je penser aussi que de mettre dans la table service le numéro du chef de service était plus judicieux mais n'étant pas expert je suis les conseil
La requête que j'aimerais faire doit : Afficher le numéro de chaque personne, son nom, (sa on s'en fous :p), le service où elle travaille, et son ched de service. donc j'ai fait une requête mais je ne sait pas comment traiter cette requete pour afficher les chefs de service. Code :
Donc es ce possible d'afficher ces 2 informations en même temps, il me semblerais que oui mais je ne trouve pas la bonne requête |
||
|
|
00
|
|
|
#15 | ||
![]() ![]() ![]() Christophe Warin Inscription : octobre 2004 Messages : 8 635 ![]() |
Citation:
Pas forcément si on demande la liste des employé avec le nom de leur chef Citation:
|
||
|
|
00
|
|
|
#16 |
|
Membre éprouvé
![]() ![]() |
ben pour toi il serait plus facile de mettre dans la table service une propriété qui comporte le numero de chef de service et abandonner l'idée du booléen, qui me semble aussi plus dur à gérer! je vais suivre ton conseil je pense à toi de me guider
![]() Si je suis ton conseil : j'obtient donc :
|
|
|
00
|
|
|
#17 |
|
Membre éprouvé
![]() ![]() |
Dans la requête que tu proposé Tofalu tu me parle d'un schéma a 3 tables non ? avec une table chef? dois je en faire une 3° ou alors je me trompe et m'enfonce de plus en plus
|
|
|
00
|
|
|
#18 |
![]() ![]() ![]() Christophe Warin Inscription : octobre 2004 Messages : 8 635 ![]() |
Non, chef est juste un alias pour renommé personnel_1 en chef (ce qui est plus parlant)
|
|
|
00
|
|
|
#19 |
|
Membre éprouvé
![]() ![]() |
oki merci
j'essaye encore de trouver la bonne requête qui me permet d'afficher le personnel et le chef du service correspondant et sachant que je ne suis pas un ouf du sql je galère bien
|
|
|
00
|
|
|
#20 |
|
Membre éprouvé
![]() ![]() |
Merci de votre aide je viens de trouver ma requête magique il me semble
Donc pour vous =>
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com