Jump to content
  • 0

Question sur la référence externe


Dymok
 Share

Question

Bonjour/bonsoir,

Une référence externe ne marche pas dans l'autre sens...

J'ai une table "Activités" où je crée les dates d'évènements à partir de quelle je crée une équipe qui bosse à telle date, - id_activité (table activités) = idf_activité (table équipe).

Dans ma table "équipe" j'ai une rubrique "idf_projets" qui fait la référence externe du rubrique idf_projets de table "Activités" et ça marche.

Ma question - pourquoi une référence externe ne marche pas dans l'autre sens, pourquoi dans ma rubrique de calcul de ma table "Activités" je n'arrive pas avoir un liste des IDs de mon équipe ?

Je vous remercie par avance)

 

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Bonjour

il me semble que vous confondez «  référence externe » et « clé étrangère »

Une référence externe c’est une information qu'on récupère dans une autre table a un instant T .

Pour que celle-ci ne se modifie pas si dans la table originale l'information a été modifiée ultérieurement .

La clé étrangère est remplie ,en général, par l'ID de la table mère ( clé primaire ) . Ce qui indique à qui appartient ( est lier ) l'enregistrement présent.

Donc cela dépend de comment est formé votre table équipe. Mais si vous avez des individus séparer pour pouvoir composer des équipes. Dans ce cas une simple table externe dans le modèle activités vous donne directement la liste les personnes composant l'équipe de cette activité .

Il y a 7 heures, Dymok a dit :

Dans ma table "équipe" j'ai une rubrique "idf_projets" qui fait la référence externe du rubrique idf_projets de table "Activités" et ça marche.

À priori votre lien idf – idf ne sert à rien car vous avez déjà  id_activité (table activités) - idf_activité (table équipe).

Et Ont ne lie pas une clé étrangère à une clé étrangère ( sauf cas particulier )

 

Link to comment
Share on other sites

  • 0

1) Je commence par ma table Spectacles, via table externe je crée un contrat.
2) Je défini une rubrique globale avec un ID_contrat et via une autre table externe je crée une activité.

3) Je défini une rubrique globale avec un ID_activité et via une autre table externe je crée une équipe.

Dans ma table équipe je me retrouve avec une clé étrangère de spectacle et une clé étrangère du contrat via les références externe, et bien une clé étrangère de l’activité via une rubrique globale.

Ce je veux c’est de voir les contrats  de chaque membre, mais je ne peux pas les lier car ma table contrats dispose qu’un clé primaire et un clé étrangère spectacle.

L’idée de récolter dans chaque contrat les clés étrangères de membres de l’équipe, pour ensuite de pouvoir lier les tables membres et contrats

clé primaire (table membres) = liste_IDs_membres (table contrats)

mais comment faire pour obtenir un liste_IDs_membres ?

 

 

0B6EE503-15B8-462B-AB49-AE36529DFD45.jpeg

Company Structure.pdf

Link to comment
Share on other sites

  • 0

question ?

Peu il y avoir plusieur contrats par sectacles ? Ou c'est un contrat pour un spectacle ?

Et donc Plusieur activité par contrat Et plusieus membre par activité ... c ca ?

Link to comment
Share on other sites

  • 0
Il y a 3 heures, Apophis000 a dit :

question ?

Peu il y avoir plusieur contrats par sectacles ? Ou c'est un contrat pour un spectacle ?

Et donc Plusieur activité par contrat Et plusieus membre par activité ... c ca ?

Il y a 3 heures, Apophis000 a dit :

Réponses :

Peu il y avoir plusieur contrats par spectacle ? Oui.

Ou c'est un contrat pour un spectacle ? Non, plusieurs contrats par spectacle selon la période et le lieu.

Et donc Plusieur activité par contrat Et plusieus membre par activité ... c ca ? Oui, c’est ça.

Au fait tout au début la table « Contrats » s’appelait « Projets », dans la logique des projets d’un spectacle donné et uniquement pour séparer mes dates d’activités par projet ( l’exemple d’une série de répétitions/représentations dans un lieu).

Au bout d’un moment je me suis rendu compte qu’un projet correspond au contrat car il contient les dates des activités de spectacle mentionné.

Link to comment
Share on other sites

  • 0
Il y a 19 heures, Dymok a dit :

mais comment faire pour obtenir un liste_IDs_membres ?

Bonjour,

La capture de ton écran montre un ensemble de tables externes reliées avec des globales. C'est parfait, ça permet un affichage très lisible.

Dans ton schéma des relations, il doit exister un autre jeu d'occurrences de table, avec des liens plus naturels :

  • Spectacle::ID = Contrat::ID_spectacle
  • Contrat::ID = Activité::ID_contrat
  • Presence::ID_contrat = Contrat::ID
  • Presence::ID_membre = Membre::ID

La notion de "présence" constitue une table intermédiaire permettant à chaque activité (que j'appelle représentation, personnellement) de posséder plusieurs membres et à chaque membre d'être présent dans plusieurs activités. Comme toute table intermédiaire, elle contient sagement l'ID externe de ses deux parents, en l'occurrence activité et membre.

Une fois que tu auras ce groupe d'occurrences de tables, il sera très facile de voir :

  • toutes les représentations d'un spectacle donné,
  • tous les membres intervenant au moins une fois sur tel spectacle,
  • tous les membres intervenant au moins une fois sur tel contrat,
  • etc.

Bonne journée,

Jérémie

Link to comment
Share on other sites

  • 0
Il y a 10 heures, Jérémie Gimenez a dit :

Bonjour,

La capture de ton écran montre un ensemble de tables externes reliées avec des globales. C'est parfait, ça permet un affichage très lisible.

Dans ton schéma des relations, il doit exister un autre jeu d'occurrences de table, avec des liens plus naturels :

  • Spectacle::ID = Contrat::ID_spectacle
  • Contrat::ID = Activité::ID_contrat
  • Presence::ID_contrat = Contrat::ID
  • Presence::ID_membre = Membre::ID

La notion de "présence" constitue une table intermédiaire permettant à chaque activité (que j'appelle représentation, personnellement) de posséder plusieurs membres et à chaque membre d'être présent dans plusieurs activités. Comme toute table intermédiaire, elle contient sagement l'ID externe de ses deux parents, en l'occurrence activité et membre.

Une fois que tu auras ce groupe d'occurrences de tables, il sera très facile de voir :

  • toutes les représentations d'un spectacle donné,
  • tous les membres intervenant au moins une fois sur tel spectacle,
  • tous les membres intervenant au moins une fois sur tel contrat,
  • etc.

Bonne journée,

Jérémie

Bonsoir Jérémie,

je te remercie de ta réponse!

C'est exactement ce que j'ai et ta notion de "présence" c'est ma table intermédiaire nommé "Equipe" qui contient des rubriques IDf des toutes les tables.

Je sais que si je vais afficher les contrats via la table externe "Equipe" (qui contient les IDf) à partir d'un modèle "Membres" il va m'afficher tout les enregistrements de ce membre dans ma table intermédiaire "Equipe". 

Le problème c'est que j'aimerai voir les contrats de membres directement à partir d'un modèle basé sur la table "Membres", mais cette table ne dispose pas des IDs_contrats (ou d'un liste des IDf_contrats) ni ma table "Contrats" ne dispose pas des IDs_membres (ou d'un liste des IDf_membres).

Bien à toi,

Andriy

Link to comment
Share on other sites

  • 0
il y a 34 minutes, Dymok a dit :

Bonsoir Jérémie,

je te remercie de ta réponse!

C'est exactement ce que j'ai et ta notion de "présence" c'est ma table intermédiaire nommé "Equipe" qui contient des rubriques IDf des toutes les tables.

Je sais que si je vais afficher les contrats via la table externe "Equipe" (qui contient les IDf) à partir d'un modèle "Membres" il va m'afficher tout les enregistrements de ce membre dans ma table intermédiaire "Equipe". 

Le problème c'est que j'aimerai voir les contrats de membres directement à partir d'un modèle basé sur la table "Membres", mais cette table ne dispose pas des IDs_contrats (ou d'un liste des IDf_contrats) ni ma table "Contrats" ne dispose pas des IDs_membres (ou d'un liste des IDf_membres).

Bien à toi,

Andriy

 

Capture d’écran 2021-08-30 à 23.14.26.png

Link to comment
Share on other sites

  • 0
Il y a 15 heures, Dymok a dit :

j'aimerai voir les contrats de membres directement à partir d'un modèle basé sur la table "Membres"

Pour ça, il te faut un jeu d'occurrences de tables autour de Membre. D'après la capture de ton schéma, tu ne l'as pas encore.

Membre -> Equipe -> Contrat (avec des liens normaux sur les ID)

Dans ton univers T05, on voit un lien entre Equipe et Membre basé sur le nom complet, ça n'est pas bon. Sinon, tu pourrais baser un modèle sur T05_équipe_MEMBRES||ID et dans ce modèle, afficher une table externe basée sur T05_équipe_CONTRATS||ID

(C'est très Lesteriusien, comme nomenclature d'occurences ! 😉)

Link to comment
Share on other sites

  • 0
Le 31/08/2021 à 15:11, Jérémie Gimenez a dit :

Pour ça, il te faut un jeu d'occurrences de tables autour de Membre. D'après la capture de ton schéma, tu ne l'as pas encore.

Membre -> Equipe -> Contrat (avec des liens normaux sur les ID)

Dans ton univers T05, on voit un lien entre Equipe et Membre basé sur le nom complet, ça n'est pas bon. Sinon, tu pourrais baser un modèle sur T05_équipe_MEMBRES||ID et dans ce modèle, afficher une table externe basée sur T05_équipe_CONTRATS||ID

(C'est très Lesteriusien, comme nomenclature d'occurences ! 😉)

Bonjour Jérémie,

Tout d’abord je te remercie de nouveau pour l’attention que tu portes à ma question 🙏

Sur la capture de mon schéma on ne voit pas un jeu d'occurrences de tables autour de Membre car ça ne rentrerait pas sur l’écran.

J’ai un jeu d'occurrences de tables autour de Membre basé sur mon modèle T01_Membres.

Un lien qu’on voit entre T05_Equipe… et T05_équipe_Membres basé sur le nom complet c’est pour récupérer l’ID de membres via la référence externe.

Je ne peut pas afficher les contrats directement à partir de la table Membres car il n’y a pas de rubrique en commun pour faire un lien, deux tables sont complètement isolées.

Dans ta réponse précédente tu m’a proposé d’afficher les contrats via Membres-Equipe-Contrats (j’ai cru qu’il faut éviter de faire ça car on se questionne deux niveaux en sous), mais ça me permets quand même d’afficher les contrats correspondant aux membres et puis quand je clique sur un contrat un script me définit une rubrique globale avec l’id de contrat sélectionné et une autre globale avec l’id de membre active, ce que me permets d’avancer.

Je crois qu’il me reste de faire un jeu d'occurrences de tables pour pouvoir activer un enregistrement lié et d’afficher mon contrat sélectionné sur un bon modèle.

Je vais le tester.

 

Je te souhaite une excellente journée

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...