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 09/01/2012, 20h15   #1
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 11
Points : 3
Points : 3
Par défaut Problème avec du multi-relation n-n

Bonjour à tous,

Assez débutant sous Acces et les SGBD en général, je tente de modéliser un cas de figure peut être assez basique pour vous mais assez compliqué pour moi.

En effet, j'ai un ensemble d'entreprises ayant toutes mis en œuvre un ensemble d'actions diverses avec leurs caractéristiques propres. Donc une table entreprises et une table actions (avec entre autres NumAction, NomAction, TypeAction, etc.)

Par contre, chaque action peut faire intervenir un ou plusieurs partenaires (donc une table partenaire avec NumPartenaire, NomPartenaire, etc.). À l'inverse, chaque partenaire peut intervenir sur plusieurs actions. J'ai donc du n-n dans mes relations. J'ai bien compris que je dois passer par une table de jointure, intégrant la clé primaire de chaque table (table actions et table partenaires).
Par contre, pour chaque action, chaque partenaire peut être tour à tour partenaire financier, partenaire technique, partenaire matériel, etc. Et sur une même action, il peut être partenaire technique et financier, par exemple. Voire tous les types en même temps.

C'est là que je bloque : comment prendre en compte le type de partenariat ? Vous avez une idée ? Je dois faire une nouvelle table type de partenariat ?*Mais dans ce cas, à quoi la relier ? Sous quelle forme ?

Merci par avance, parce que là, je ne vois pas trop.
GroFlo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 08h42   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 258
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 258
Points : 1 877
Points : 1 877
Bonjour,

Si j'ai bien compris, le role de l'entreprise fait partie de la liaison donc c'est juste une 3e colonne dans la table de jointure
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h52   #3
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
Citation:
Envoyé par GroFlo Voir le message
J'ai donc du n-n dans mes relations. J'ai bien compris que je dois passer par une table de jointure, intégrant la clé primaire de chaque table (table actions et table partenaires).
donc tu as le schéma:
Citation:
Action-1-----∞-Intervenir-∞-----1-Partenaire
Intervenir(#idAction, #idPartenaire)


Citation:
Envoyé par GroFlo Voir le message
Par contre, pour chaque action, chaque partenaire peut être tour à tour partenaire financier, partenaire technique, partenaire matériel, etc. Et sur une même action, il peut être partenaire technique et financier, par exemple. Voire tous les types en même temps.
tu as la possibilité de compléter le schéma:
Citation:
Action-1-----∞-Intervenir-∞-----1-Partenaire
............................|
............................
............................|
............................|
............................1
............................|
.....................TypePartenariat
Intervenir(#idAction, #idPartenaire, #idTypePartenariat)


Soit tu justifies que l'association "Intervenir" puisse devenir une entité "Intervention" avec ses attributs propres indépendamment du type de partenariat:

Citation:
Action-1-----∞-Intervention-∞-----1-Partenaire
Intervention(idIntervention, #idAction, #idPartenaire, DateIntervention, TypeIntervention, etc) avec une contrainte "sans doublons" sur la paire {idAction, idPartenaire},

puis une association n-n
Citation:
Intervention-1-----∞-AvoirTypePartenariat-∞------1-TypePartenariat
AvoirTypePartenariat(#idIntervention, #idTypePartenariat)
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2012, 21h57   #4
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 11
Points : 3
Points : 3
Merci pour cette réponse. J'ai effectivement entre temps pensé à faire cela. Mais je me suis aussi rendu compte que finalement, le plus simple était peut-être de rajouter, dans la table partenaire, des champs oui/non par type de partenariat.
J'ai donc la table partenaires(NumAutoPartenaire, NomPartenaire, Technique(oui/non), Financier(oui/non), Matériel(oui/non), etc.)

Ça vous semble pouvoir aller ? Où ça vous semble compliquer les choses ?
GroFlo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 23h39   #5
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
bonsoir,

Citation:
Envoyé par f-leb Voir le message
Intervenir(#idAction, #idPartenaire, #idTypePartenariat)
Je prends un exemple :
Code :
1
2
3
4
5
6
Intervenir :
idAction	idPartenaire	idTypePartenariat
100		1		1
100		1		2
200		1		1
…
Le partenaire n°1 intervient dans l’action n°100 avec le type de partenariat 1 et 2 (il est partenaire technique et financier par exemple)
Ce même partenaire n°1 intervient aussi dans une autre action n°200 mais cette fois avec le seul type de partenariat n°1 (dans l’action n°200, il n’est que partenaire technique).


Citation:
Envoyé par GroFlo Voir le message
J'ai donc la table partenaires(NumAutoPartenaire, NomPartenaire, Technique(oui/non), Financier(oui/non), Matériel(oui/non), etc.)
Avec le type de partenariat renseigné directement dans la table des partenaires, tu auras le même type de partenariat pour toutes les actions où intervient le partenaire.

Bref, à cette étape il ne s’agit pas de rechercher à "simplifier" un schéma mais proposer celui qui correspondra à tes règles de gestion (celui qui représentera au mieux la "réalité" que tu veux modéliser), tu vois ? 
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 01h49   #6
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 11
Points : 3
Points : 3
Citation:
Envoyé par f-leb Voir le message
Avec le type de partenariat renseigné directement dans la table des partenaires, tu auras le même type de partenariat pour toutes les actions où intervient le partenaire.

Bref, à cette étape il ne s’agit pas de rechercher à "simplifier" un schéma mais proposer celui qui correspondra à tes règles de gestion (celui qui représentera au mieux la "réalité" que tu veux modéliser), tu vois ? 
En effet, merci pour ces réponses. En fait, du coup, je pensais avoir autant de partenaires que de cas possible : prenons le cas d'un partenaire P1, je comptais créer dans ma table partenaire une ligne P1 financier, une ligne P1 technique, une ligne P1 technique et financier, etc. et ensuite « choisir » le bon cas de figure à chaque action. Mais effectivement, ça me semblait assez lourd ne serait-ce que pour remplir cette table, et peu lisible.

Du coup, votre solution me parait nettement préférable. Si j'ai bien compris, il s'agit en fait, en créant ma table de jonction « intervenir », d'y mettre 3 clés étrangères (et non pas 2) puisqu'elle sera reliée à 3 tables, ces 3 clés étrangères là formant la clé primaire de cette table de jonction. C'est cela ?

Pour visualiser, j'ai fait rapidement un schéma de relations sous Access, en pièce jointe.
Images attachées
Type de fichier : png Access.png (24,2 Ko, 4 affichages)
GroFlo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 13h18   #7
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
bonjour,

Citation:
Envoyé par GroFlo Voir le message
Du coup, votre solution me parait nettement préférable. Si j'ai bien compris, il s'agit en fait, en créant ma table de jonction « intervenir », d'y mettre 3 clés étrangères (et non pas 2) puisqu'elle sera reliée à 3 tables, ces 3 clés étrangères là formant la clé primaire de cette table de jonction. C'est cela ?
Code :
1
2
3
4
5
6
7
8
Intervenir :
idAction	idPartenaire	idTypePartenariat
100		1		1
100		1		2
100		2		1
200		1		1
200		2		3
…
  • Pour une action, un partenaire peut exercer plusieurs types de partenariat (lignes 3 et 4)
  • Un partenaire peut exercer le même type de partenariat dans plusieurs actions (lignes 3 et 6)
  • Dans une action, un type de partenariat peut être exercé par plusieurs partenaires (lignes 3 et 5)

Si ces 3 cas sont possibles, le schéma convient
f-leb 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 09h21.


 
 
 
 
Partenaires

Hébergement Web