1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : juin 2008
    Messages : 7
    Points : 7
    Points
    7

    Par défaut Difficulté de créer une table réflexive

    Bonsoir
    Je veux réaliser une base de données pour gérer un projet de consommation d'eau potable dans une Association , et je suis débutant dans Access ,voici mon problème:
    La base contient la table "Adhérant" et "Adhérant membre dans le bureau" c'est à dire qu'il a un rôle a jouer (une propriété de plus que "Adhérant", et "Adhérant salarié" le salaire est une autre propriété de plus que le premier et le second. la question comment faire pour modeler ça dans Access.
    Merci d'avance.Nom : Amane.jpg
Affichages : 50
Taille : 132,6 Ko

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    9 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 9 364
    Points : 14 283
    Points
    14 283

    Par défaut

    Bonjour.

    Les tables réflexives même si très élégantes ne sont pas toujours faciles à vivre et à exploiter.

    Est-ce que une personne peut avoir plusieurs rôles ? Être salariés plusieurs fois ? Est-ce qu'elle peut avoir un rôle et être salariée ?

    Si non le plus simple est de n'avoir qu'une seule table des adhérents avec TOUS les champs dont tu as besoin et un champ CodeTypeAdherent où le code est quelque chose comme ADHERENT, ADHERENT_AVEC_ROLE, ADHERENT_SALARIE.

    Après au niveau des écrans de saisie (formulaires) tu vas cacher ou afficher les champs en fonction du type.

    Note qu'il faudrait pour être strict, créer une table des types d'adhérent.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre expérimenté Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    janvier 2011
    Messages
    732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : janvier 2011
    Messages : 732
    Points : 1 705
    Points
    1 705

    Par défaut

    Salut,

    J'aime bien l'idée d'une seule table.

    Après si les rôles sont simplement :
    "membres du bureau" ou pas
    "Salariés" ou pas,
    Tu as plus vite fait de faire un champ Oui/Non. Et là les risque d'erreurs sont limités. ET tu peux, si tu veux bien faire les choses) faire un test après mise à jour pour afficher le champ "Salaire", par exemple.

    Si une personne peut avoir plusieurs rôles. Là, il te faudrait 3 tables :
    Adhérents (avec la liste des personnes)
    Rôles (avec la liste des rôles)
    Fonctions (qui permet de savoir quelle personne exerce quel rôle) on y trouverai, au minimum, La clé primaire des adhérents et des rôles.
    Jérôme

    " Je pense donc je suis. Tu es donc j'apprends ". (GCM)

    Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : juin 2008
    Messages : 7
    Points : 7
    Points
    7

    Par défaut

    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Les tables réflexives même si très élégantes ne sont pas toujours faciles à vivre et à exploiter.

    Est-ce que une personne peut avoir plusieurs rôles ? Être salariés plusieurs fois ? Est-ce qu'elle peut avoir un rôle et être salariée ?

    Si non le plus simple est de n'avoir qu'une seule table des adhérents avec TOUS les champs dont tu as besoin et un champ CodeTypeAdherent où le code est quelque chose comme ADHERENT, ADHERENT_AVEC_ROLE, ADHERENT_SALARIE.

    Après au niveau des écrans de saisie (formulaires) tu vas cacher ou afficher les champs en fonction du type.

    Note qu'il faudrait pour être strict, créer une table des types d'adhérent.

    A+
    Merci beaucoup pour votre éclaircissement du problème.
    Pour les questions:
    Est-ce que une personne peut avoir plusieurs rôles ? Oui mais par date comme une propriété portée.
    Être salariés plusieurs fois ? Probable mais pas évident.
    Est-ce qu'elle peut avoir un rôle et être salariée ? Non , puisque le statut de base dit que les membres du bureau sont tous des bénévolats.
    Pour être tout à fait clair (ça aide beaucoup à répondre), les adhérents sont des personne sans aucun rôle dans la gestion de l'association. les membres du bureau sont des adhérents plus le rôle de:
    1. Un-e- président-e- ;
    2. Un-e- ou plusieurs vice-président-e-s ;
    3. Un-e- secrétaire et, s'il y a lieu, un-e- secrétaire adjoint-e- ;
    4. Un-e- trésorier-e-, et, si besoin est, un-e- trésorier-e- adjoint-e-.

    les salariés sont des adhérent plus une autre fonction:
    1. un pompiste ;
    2. un gardien ;
    3. un technicien.

    Voila j’espère que je sois un peu clair et merci pour la réponse.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : juin 2008
    Messages : 7
    Points : 7
    Points
    7

    Par défaut

    Citation Envoyé par jerome.vaussenat Voir le message
    Salut,

    J'aime bien l'idée d'une seule table.

    Après si les rôles sont simplement :
    "membres du bureau" ou pas
    "Salariés" ou pas,
    Tu as plus vite fait de faire un champ Oui/Non. Et là les risque d'erreurs sont limités. ET tu peux, si tu veux bien faire les choses) faire un test après mise à jour pour afficher le champ "Salaire", par exemple.

    Si une personne peut avoir plusieurs rôles. Là, il te faudrait 3 tables :
    Adhérents (avec la liste des personnes)
    Rôles (avec la liste des rôles)
    Fonctions (qui permet de savoir quelle personne exerce quel rôle) on y trouverai, au minimum, La clé primaire des adhérents et des rôles.
    Merci beaucoup pour votre éclaircissement du problème.
    J'ai essayé déjà dans Windev d'ajouter un champs boolean(vrai ou faux) et dans le formulaire il m'affiche les champs désirés, ça marche nickel mais j'ai pas pu aller jusqu'au bout a cause d'autre complexités.
    et dans access le code VBA me pose encore problème pour afficher des champs selon l'état du champs "oui" ou "non".
    En tout cas merci encore.
    A+

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    9 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 9 364
    Points : 14 283
    Points
    14 283

    Par défaut

    Bonjour mes réponses sous la citation.

    Citation Envoyé par lhouknifis Voir le message
    Merci beaucoup pour votre éclaircissement du problème.
    Pour les questions:
    Est-ce que une personne peut avoir plusieurs rôles ? Oui mais par date comme une propriété portée.
    Être salariés plusieurs fois ? Probable mais pas évident.
    Est-ce qu'elle peut avoir un rôle et être salariée ? Non , puisque le statut de base dit que les membres du bureau sont tous des bénévolats.
    Pour être tout à fait clair (ça aide beaucoup à répondre), les adhérents sont des personne sans aucun rôle dans la gestion de l'association. les membres du bureau sont des adhérents plus le rôle de:
    1. Un-e- président-e- ;
    2. Un-e- ou plusieurs vice-président-e-s ;
    3. Un-e- secrétaire et, s'il y a lieu, un-e- secrétaire adjoint-e- ;
    4. Un-e- trésorier-e-, et, si besoin est, un-e- trésorier-e- adjoint-e-.

    les salariés sont des adhérent plus une autre fonction:
    1. un pompiste ;
    2. un gardien ;
    3. un technicien.

    Voila j’espère que je sois un peu clair et merci pour la réponse.
    Personnellement j'irai avec une seule table pour tous.

    tblAdherent
    CodeType
    Infos qui concerne tout le monde.
    Role 'pour les membre du bureau
    DateRole 'pour les membre du bureau
    Emplois 'Pour les salariés

    Éventuellement avec une table des rôles et une table des emplois.

    Sinon j'opterai, si tu veux garder un historique des rôles et des emplois, pour :

    tblAdherent
    ClefAdherent
    Infos qui concerne tout le monde

    tblRole
    ClefRole

    tblRoleAdherent
    ClefRoleAdherent
    ClefAdherent
    ClefRole
    DateDebutRole
    DateFinRole

    tblEmploi
    ClefEmploi

    tblEmploiAdherent
    ClefEmploiAdherent
    ClefAdherent
    ClefEmploi
    DateDebutEmploi
    DateFinEmploi

    Les DateDebut et DateFin ne sont pas obligatoires mais cela facilite la sélection des données actives pour une date. Il est très facile de faire [MaDateVoulu] between [DateDebut] and [DateFin] que de trouver les dates qui encadre cette même date dans la table interrogée.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : juin 2008
    Messages : 7
    Points : 7
    Points
    7

    Par défaut

    Citation Envoyé par marot_r Voir le message
    Bonjour mes réponses sous la citation.



    Personnellement j'irai avec une seule table pour tous.

    tblAdherent
    CodeType
    Infos qui concerne tout le monde.
    Role 'pour les membre du bureau
    DateRole 'pour les membre du bureau
    Emplois 'Pour les salariés

    Éventuellement avec une table des rôles et une table des emplois.

    Sinon j'opterai, si tu veux garder un historique des rôles et des emplois, pour :

    tblAdherent
    ClefAdherent
    Infos qui concerne tout le monde

    tblRole
    ClefRole

    tblRoleAdherent
    ClefRoleAdherent
    ClefAdherent
    ClefRole
    DateDebutRole
    DateFinRole

    tblEmploi
    ClefEmploi

    tblEmploiAdherent
    ClefEmploiAdherent
    ClefAdherent
    ClefEmploi
    DateDebutEmploi
    DateFinEmploi

    Les DateDebut et DateFin ne sont pas obligatoires mais cela facilite la sélection des données actives pour une date. Il est très facile de faire [MaDateVoulu] between [DateDebut] and [DateFin] que de trouver les dates qui encadre cette même date dans la table interrogée.

    A+
    Merci encore mille fois c'est clair et bien détaillé.
    A trés bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. créer une table pour une relation réflexive
    Par PeaceMind dans le forum PHP & MySQL
    Réponses: 5
    Dernier message: 10/08/2012, 00h28
  2. créer une table de folder
    Par bibifinal dans le forum MFC
    Réponses: 2
    Dernier message: 25/02/2005, 15h24
  3. Créer une table en VBA ?
    Par nicburger dans le forum Access
    Réponses: 11
    Dernier message: 16/02/2005, 16h15
  4. Réponses: 17
    Dernier message: 03/12/2004, 15h33
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo