Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2007, 15h32   #1
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
Par défaut Modélisation d'une spécialisation

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 ...
erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2007, 16h02   #2
Rédacteur
 
Avatar de Lou Pitchoun
 
Christophe Lessirard
Inscription : février 2005
Messages : 5 029
Détails du profil
Informations personnelles :
Nom : Christophe Lessirard
Âge : 33
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 5 029
Points : 6 000
Points : 6 000
Envoyer un message via MSN à Lou Pitchoun
Bonjour d'abord,

Citation:
Je voudrai faire une spécialisation sous une de mes tables
Pourrais-tu être plus précis.

__________________

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 00
Vieux 10/01/2007, 16h25   #3
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
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
erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h34   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 351
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 351
Points : 29 264
Points : 29 264
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h38   #5
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
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
erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h39   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 351
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 351
Points : 29 264
Points : 29 264
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h40   #7
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Y a une redondance d'information là.

Le chef de service figure dans la table service, le booleen n'a pas lieu d'exister
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h41   #8
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
merci bien sur je te laisse 10 min


oui en faite quand j'ai écrit j'ai du me tromper j'ai combinner les 2 solutions que j'avais
erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h44   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 351
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 351
Points : 29 264
Points : 29 264
Code :
1
2
3
SELECT Personnel.nom_pers, Personnel.pre_pers, Personnel.adr_pers, Personnel.tel_pers, Personnel.chef_serv_pers, Service.lib_serv, Service.adr_serv, Service.tel_serv
FROM Service INNER JOIN Personnel ON Service.num_service = Personnel.num_serv
WHERE (((Personnel.chef_serv_pers)=Yes));
Voilà.

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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h48   #10
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
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 :
1
2
3
4
5
6
7
 
SELECT Personnel.Num_pers, Personnel.Nom_pers, Service.Lib_Ser, Chef.Nom_pers AS NomChef
FROM (
		Personnel INNER JOIN Service 
					ON Personnel.Num_serv=Service.NUm_serv) 
	INNER JOIN Personnel AS Chef 
					ON Service.Num_Chef=Chef.Num_pers;
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h49   #11
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
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 ?
erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 09h52   #12
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 351
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 351
Points : 29 264
Points : 29 264
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 10h00   #13
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
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:
Si tu veux tous les chefs de service.
Je prend ma table service et je fait une jointure sur le n° de chef. Ce qui me permet au passage de lister les services qui ont un poste de chef vacant.

Citation:
Si tu veux ceux qui ne sont pas chef de service.
WHERE Num_Pers NOT IN ...

Citation:
Les personnes d'un même service.
ça, ça ne change pas puisque le numéro de service est dans la table personnel.


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é ?
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 10h00   #14
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
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 :
1
2
3
SELECT num_pers, nom_pers, pre_pers, adr_pers, lib_serv
FROM Service INNER JOIN Personnel ON Service.num_serv=Personnel.num_serv_pers
ORDER BY num_pers;

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
erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 10h02   #15
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Citation:
C'est plus facile et plus clair pour les requêtes.

Pas forcément si on demande la liste des employé avec le nom de leur chef

Citation:
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
C'est justement la requête que j'ai donné plus haut
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 10h05   #16
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
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 :


erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 10h18   #17
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
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
erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 10h26   #18
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Non, chef est juste un alias pour renommé personnel_1 en chef (ce qui est plus parlant)
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 10h34   #19
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
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
erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 10h36   #20
Membre éprouvé
 
Avatar de erfindel
 
Inscription : janvier 2007
Messages : 498
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 498
Points : 437
Points : 437
Envoyer un message via MSN à erfindel
Par défaut :resolu:

Merci de votre aide je viens de trouver ma requête magique il me semble
Donc pour vous =>


erfindel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h49.


 
 
 
 
Partenaires

Hébergement Web