IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

relations & Cardinalités Access


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Inscrit en
    octobre 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 19
    Points : 10
    Points
    10
    Par défaut relations & Cardinalités Access
    Bonjour tous,

    Pouvez-vous m’assister sur l’élaboration des cardinalités d’une base Access ?

    Je souhaite créer une base qui gère des habilitations, avec 3 tables :

    1 Table_Personnel, 1 table catégorie habilitation, et 1 table liste habilitation.

    Je vous explique le concept : une personne peut avoir plusieurs catégories d’habilitation ( par exemple conduite de VL, conduite d’engin de chantier, travaux, etc.), et

    dans chaque catégorie d’habilitations il peut y avoir une ou plusieurs type d’habilitations issuent de la table liste habilitation (par exemple pour conduite engin de

    chantier il peut y avoir les camions, les pelles, etc.).

    Je vous présente le schéma que j’ai élaboré ci-dessous avec les relations que j’ai créées.

    Nom : Cardinalités.png
Affichages : 168
Taille : 22,9 Ko

    J’aimerai avoir votre avis afin de savoir si le concept et si mes relations sont correctes aussi, et si cela me permettra de renseigner toues les informations à partir de la

    table Personnel dans laquelle : je choisis la personne ( via une liste à choix multiple ), puis ensuite la catégorie habilitation et enfin le type d’habilitation avec les dates

    de début et fin validité. Sinon a défaut pouvez-vous m'aiguiller sur les correctes relations si je fais fausse route?

    Merci .

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    7 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 7 940
    Points : 18 709
    Points
    18 709
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    Je pense que le champ Catégorie_Habilitation est en trop dans la table TblListeHabilitation ?

    A propos faites-vous une différence entre type_habilitation et Catégorie_Habilitation dans cette même table ?

    J'ai un doute aussi concernant les champs [début validité] et [fin validité]. Ces dates ne dépendent-elles pas directement de la personne ?

    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre à l'essai
    Inscrit en
    octobre 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour
    Merci pour votre retour:
    Je pense que le champ Catégorie_Habilitation est en trop dans la table TblListeHabilitation ?
    Je suis du même avis c'est une coquille. je vais supprimer ce champ.

    A propos faites-vous une différence entre type_habilitation et Catégorie_Habilitation dans cette même table
    Vous parlez bien de la table TblListeHabilitation ? Si oui la question ne se posera plus si je supprime le champ Catégorie_Habilitation. C'est bien cela ?

    J'ai un doute aussi concernant les champs [début validité] et [fin validité]. Ces dates ne dépendent-elles pas directement de la personne
    Les dates dépendent de la personne mais surtout du type_d'habilitation, car la personne peut en avoir plusieurs de types d'habilitation. Et ce type d'habilitation appartient à une catégorie d'habilitation. il faut voir la relation Catégorie_Habilitation/type_Habilitation comme une relation Famille/Sous-Famille. Il peut donc y avoir plusieurs dates pour une même personne qui peut avoir plusieurs habilitations.

    Vous avez des suggestions sur l'agencement des relations de cette base ?

    merci.

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    7 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 7 940
    Points : 18 709
    Points
    18 709
    Billets dans le blog
    40
    Par défaut
    J'aurais tendance à inverser les 2 tables tblCategorieHabilitation et tblListeHabilitations :

    mettre le champ IdPersonne dans la table tblListeHabilitations plutôt que dans tblCategorieHabilitation.

    TblPersonne(IdPersonne,...)1 < ------ > n tblListeHabilitations(N°Habilitation, IdPersonne, IdCategorie, ...) n <------ > 1 TblCategorieHabilitation(IdCategorie,...)

    La table tblListeHabilitations servant de relation entre les 2 autres tables, comme dans ce schéma :

    Relation plusieurs-à-plusieurs
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Je suis tout à fait d'accord avec USER

    Quand tu dis :
    Citation Envoyé par touixlogic Voir le message
    ... Je souhaite créer une base qui gère des habilitations, avec 3 tables :
    1 Table_Personnel, 1 table catégorie habilitation, et 1 table liste habilitation. ...
    Tout d'abord sans analyse ta conception sera surement bancale.
    De plus ce ne sera pas toi qui va définir le nombre de tables mais ton MCD avec les cardinalités. Et tu vas voir rapidement avec ce qui suit qu'il y a plus que 3 tables.

    Citation Envoyé par touixlogic Voir le message
    ... Je vous explique le concept : une personne peut avoir plusieurs catégories d’habilitation (par exemple : conduite de VL, conduite d’engin de chantier, travaux, etc.), ...
    Bien que tu ne le dises pas on peut raisonnablement penser qu'une catégorie d'habilitation peut être possédé par plusieurs personnes.

    Cependant je ne pense pas que ce soit correct.

    Pour moi :
    Une personne a une ou plusieurs habilitations
    Une habilitation peut être possédé par une ou plusieurs personnes
    Cette habilitation appartient à une catégorie et c'est par ce biais que tu obtiendras pour une personne ses catégories

    Dans le cas où entre 2 entités [T_Personnel] et [T_ListeHabilitation] on a une relation 1,n - 1,n il se génère une table intermédiaire.

    Comme te l'as indiqué User dans ses posts, regardes les tutos, surtout le chapitre trois du lien ci-dessous

    https://denishulo.developpez.com/tut...lusieurs/#LIII

    Concernant les dates de début et fin de validité d'une habilitation,
    Elles ne sont pas bien placées car elles dépendent d'une personne avec une habilitation

    Tel que c'est présenté cela signifie qu'une habilitation est valide de date1 à date2 et ceci pour tout le monde.
    Je ne pense pas que ce soit le cas

    Elles sont donc au sein de la relation

    Du coup pour tes tables cela donne

    [T_Personnel]1,n (relation possede) 1,n[T_ListeHabilitation]

    T_Personnel : Id_personnel, Nom .....
    T_ListeHabilitation : N°Habilitation, N°Categorie
    T_Possede : Id_personnel, N°Habilitation, début validité, fin de validité

    Id_personnel, N°Habilitation sont LA clé




    Je pense que tu ne t'es pas posé les bonnes questions.

    Comme par exemple :

    Au lieu de dire :
    Citation Envoyé par touixlogic Voir le message
    une personne peut avoir plusieurs catégories d’habilitation
    Il faut dire :
    une personne peut avoir plusieurs habilitations qui appartiennent à une catégorie.
    Il y a plusieurs catégories
    Chaque catégorie regroupe plusieurs habilitations
    Toutes ces règles de gestion doivent être décrites dans un document qui s'appelle "Un cahier des charges" (cela peut ne faire qu'une page il n'y a pas de stress)

    Sans ce document on ne peut pas faire une base de données correcte.

    Mais rien n'est perdu !!!!

    Commence par le début c'est à dire faire un cahier des charges (même mini). Le listage des règles de gestion ainsi que les informations que tu veux voir est primordial.

    Une fois fait, je te guiderai, pour que ta base soit une base qui tienne la route

    Enfin si tu le souhaites car je le ferai volontiers


    @+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  6. #6
    Membre à l'essai
    Inscrit en
    octobre 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Merci. Effectivement cela fonctionne mieux avec les relations comme ci-dessous :

    Nom : Cardinalités_n_n.png
Affichages : 146
Taille : 9,7 Ko

    Avec cette configuration, si je comprends bien la table centrale sera la table « TblListeHabilitation » à partir de laquelle se feront tous les enregistrements ? Est-ce bien

    cela ? Pour choisir une personne dans la « TblListeHabilitation », j’ai mis une liste de choix dans le champ ‘’Idpersonnel’’ qui tire sa source de la table « TblPersonnel »,

    toujours dans la table « TblListeHabilitation » je choisis la catégorieHabilitation via le champ ‘’N°Catégorie’’ qui tire sa source dans une liste de choix que j’ai saisie et

    enfin pour le choix du champ typeHabilitation, c’est également une liste de choix que j’ai préremplie. A propos de la liste de choix, le fait de ne pas cocher l’option

    valeurs multiples n’empêche pas de rajouter de nouveaux types et catégories d’habilitations par la suite?

    Si cela est correcte je vais pré-remplir la base manuellement et tenter des requêtes par la suite.

  7. #7
    Membre à l'essai
    Inscrit en
    octobre 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Merci. Effectivement cela fonctionne mieux avec les relations comme ci-dessous :

    Nom : Cardinalités_n_n.png
Affichages : 146
Taille : 9,7 Ko

    Avec cette configuration, si je comprends bien la table centrale sera la table « TblListeHabilitation » à partir de laquelle se feront tous les enregistrements ? Est-ce bien

    cela ? Pour choisir une personne dans la « TblListeHabilitation », j’ai mis une liste de choix dans le champ ‘’Idpersonnel’’ qui tire sa source de la table « TblPersonnel »,

    toujours dans la table « TblListeHabilitation » je choisis la catégorieHabilitation via le champ ‘’N°Catégorie’’ qui tire sa source dans une liste de choix que j’ai saisie et

    enfin pour le choix du champ typeHabilitation, c’est également une liste de choix que j’ai préremplie. A propos de la liste de choix, le fait de ne pas cocher l’option

    valeurs multiples n’empêche pas de rajouter de nouveaux types et catégories d’habilitations ?

    Si cela est correcte je vais pré-remplir la base manuellement et tenter des requêtes par la suite.

  8. #8
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Voici comme convenu un modèle de CDC promis

    cahier-des-charges.docx


    Si tu as besoin d'aide n'hésites pas

    @+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  9. #9
    Membre à l'essai
    Inscrit en
    octobre 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    Ci-joint :cahier-des-charges.docx
    @+

  10. #10
    Membre à l'essai
    Inscrit en
    octobre 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Je souhaite apporter un supplément dans les règles de gestion:

    En fait

    1-Une personne a une ou plusieurs habilitations
    2-Une habilitation peut être possédée par une ou plusieurs personnes
    3-une personne peut avoir plusieurs habilitations qui appartiennent à une catégorie.
    4-Il y a plusieurs catégories
    5-Chaque catégorie regroupe une ou plusieurs habilitations
    6- Aussi :une personne a une ou plusieurs catégorie
    7-De même une catégorie peut être possédé par une ou plusieurs personnes.

    En tenant compte de ces paramètres ci-dessus suite à vos observations peut on agencer les tables comme ci-dessous en appliquant l'intégrité référentielle sur les relations 1-n?

    Nom : Cardinalités_11_02_2023.png
Affichages : 82
Taille : 11,7 Ko

    Merci d'avance pour vos réponses

  11. #11
    Membre à l'essai
    Inscrit en
    octobre 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    Ci-joint (cdc mis à jour) :cahier-des-charges.docx.
    @+

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : mars 2012
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Salut touixlogic,

    C'est très bien comme cela, car tu conserves ta demande initiale : des catégories d'habilitation qui regroupent des habilitation, et des utilisateurs.
    Mais l'ajout de la table "de liaison" entre les utilisateurs et les habilitation permet de savoir qui possède quelle habilitation (et donc, par la relation, de quelle catégorie)
    C'est nickel.

  13. #13
    Membre à l'essai
    Inscrit en
    octobre 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par mhuress Voir le message
    Salut touixlogic,

    C'est très bien comme cela, car tu conserves ta demande initiale : des catégories d'habilitation qui regroupent des habilitation, et des utilisateurs.
    Mais l'ajout de la table "de liaison" entre les utilisateurs et les habilitation permet de savoir qui possède quelle habilitation (et donc, par la relation, de quelle catégorie)
    C'est nickel.
    Bonjour Huress
    Merci pour ton retour. je me demandais au vu de ces points 3, 4 et 5 s'il ne fallait pas rajouter une deuxième table de liaison ( entre catégorie_habilitation et Tblhabilitation), tel que le montre le schéma ci-dessous car ils ont une relation n-n?
    3-une personne peut avoir plusieurs habilitations qui appartiennent à une catégorie.
    4-Il y a plusieurs catégories
    5-Chaque catégorie regroupe une ou plusieurs habilitations
    .
    Nom : Cardinalités_17_02_2023.png
Affichages : 44
Taille : 13,2 Ko
    Est-ce erronée ?

Discussions similaires

  1. Projet Access : relations et cardinalités
    Par melmig06 dans le forum Modélisation
    Réponses: 11
    Dernier message: 25/08/2008, 17h02
  2. Réponses: 9
    Dernier message: 05/02/2008, 14h53
  3. Application en relation avec EXCEL + ACCESS
    Par david71 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/08/2007, 19h09
  4. [ODBC] Relation entre PHP/Access et MySQL
    Par fati31 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/06/2007, 10h42
  5. Comment mettre en relation Excel avec Access ?
    Par rimrim dans le forum Access
    Réponses: 2
    Dernier message: 20/07/2006, 14h22

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