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 :

Premier pas pour une 1ere bd simple .. 2 questions bêtes


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2017
    Messages : 91
    Points : 16
    Points
    16
    Par défaut Premier pas pour une 1ere bd simple .. 2 questions bêtes
    Bonjour
    Depuis plus de dix ans, j'utilise access pour plein de trucs (exportation sql vers mysql, requetes sql pour des mises à jour, liste de chansons pour la scene, avec les paroles, etc ...)
    mais en total autodidacte, et sans jamais utiliser les cles primaires ni les relations, par exemple !
    Quand j'essaie d'aborder un tuto , ... je suis largué avant la fin du premier chapitre !
    je n'arrive pas à en trouver un pour les "super nuls". J'ai un blocage total avec le vocabulaire utilisé dans access et ses tuto.

    Pourtant, il me suffirait de quelques explications simplissimes sur les relations et clés primaire (pour commencer). Si je connaissais un utilisateur d'access, il me montrerait ce qu'il faut en dix minutes, mais je ne l'ai pas

    Ainsi, j'ai quelques questions precises sur une base simple tel que

    tblAuteur Donne la liste des auteurs
    ClefAuteur
    Autres infos

    tblStandard Donne la liste des standards
    ClefStandard
    Autres infos

    tblAuteurStandard Donne la liste des auteurs des différents standards.
    ClefAuteurStandard
    ClefAuteur
    ClefStandard

    1ere question, y a t'il un inconvénient à définir la clé de l'auteur (et celle du standard) sur le nom de l'auteur (et du standard) ? ... au lieu de definir un champs special pour un numero auto ?
    Ensuite, pour les deux premieres tables, rien de nouveau pour moi. J'ai deja ma table auteur et ma table standards avec de nombreux attributs.
    Mais comment est ce que je fais la troisieme ?
    Je crée une table et j'y mets les trois champs puis je definis les jointures et les champs se mettront à jour en allant puiser les info dans les deux autres ? Est ce que, dans le principe, ça se passe ainsi ? Si oui, où et comment se font les jointures ? Si non ... euh, comment faire cette troisieme table dont deux champs doivent être les mêmes, si j'ai bien compris, que les deux clés respectives des deux premieres tables ?

    Voila, si vous avez la gentillesse de repondre à ça, je crois que j'aurais franchi une premiere etape dans mon retour aux bases possible

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    1ere question, y a t'il un inconvénient à définir la clé de l'auteur (et celle du standard) sur le nom de l'auteur (et du standard) ? ... au lieu de definir un champs special pour un numero auto ?
    Disons que c'est une bonne habitude car cela rend d'éventuel codage en dur indépendant du texte affiché. Cela peut poser un problème si tu dois transférer tes données dans un autre système.
    Et cela prend un peu moins de place qu'un texte.
    Mais l'important c'est d'avoir un identifiant unique donc si tu es sur que le nom ou le titre est unique, tu peux t'en servir.
    Personnellement même quand j'utilise un index unique (un champ ou des champs qui identifient de façon individuel un enregistrement) je défini quand même une clef primaire autonum car j'ai été plus d'une fois contraint de l'utiliser plus tard. Et en plus cela me donne l'ordre dans lequel mes données ont été entrée ce qui est parfois pratique.

    Pour commencer, tu peux te contenter du nom.

    Mais comment est ce que je fais la troisieme ?
    Je crée une table et j'y mets les trois champs puis je definis les jointures et les champs se mettront à jour en allant puiser les info dans les deux autres ?
    Oui et si on garde l'idée d'utiliser les noms (et les prénoms) tu vas avoir quelque chose comme

    tblAuteur
    NomAuteur (Clef primaire)
    PrenomAuteur (Clef primaire)
    Autres infos

    tblStandard
    TitreStandard (Clef primaire)
    Autres infos

    tblAuteurStandard Donne la liste des auteurs des différents standards.
    ClefAuteurStandard
    NomAuteur
    PrenomAuteur
    TitreStandard

    Comment se font les jointures ?
    Créer le relation ressemble beaucoup à créer des jointures.
    1. Une fois table tblAuteurStandard (dite table d'association puisqu'elle te permet d'associer tes auteurs et tes titres) crée, tu vas dans "outils de base de données" et tu ouvres la fenêtre des "relations".
    2. Là tu cliques bouton droit et tu choisi ajouter des tables. Tu ajoutess tes 3 tables.
    3. Après tu sélectionnes les champs Nom et Prenom de tblAuteur et tu les glissent vers la table tblAuteurStandard.
    4. Tu coches "Appliquer l'intégrité référentielle" (pour forcer Access à vérifier que l'auteur choisi existe dans la tables des auteurs).
    5. Tu coches "Mettre à jour en cascade" (pour forcer Access à modifier les données si tu fais un changement au nom)
    6. Tu laisses "Supprimer en cascade" décocher car sinon tu risques de supprimer des données sans le vouloir.


    Tu fais la même chose avec la table tblStandard et TitreStandard.

    Attention créer une relation ne suffit pas pour que Access crée les données. Il faut enter toi-même les infos sur l'auteur et le standard.
    On passera généralement par un formulaire principal basé sur tblAuteur par exemple et un sous-formulaire basé sur tblAuteurStandard pour éviter d'avoir à recopier les données venant des tables de référence (tblAuteur et tblStandard).

    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 à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2017
    Messages : 91
    Points : 16
    Points
    16
    Par défaut
    Un super merci pour cette reponse aussi precise que rapide. Je vais mediter tout ça au moins une demi journée ...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2017
    Messages : 91
    Points : 16
    Points
    16
    Par défaut
    Alors ... les premieres questions sont là .... en esperant que tu continueras (ou/et peut être quelqu'un d'autre) à avoir la patience et la gentillesse de m'éclairer. J'en profite pour remercier au passage les admin de ce precieux (et bourré de gens aimables, semblerait il) forum

    Quand je crée la 3eme table , est ce que je dois créer les champs "qui doivent venir des autres tables" ou bien est ce qu'ils se créeront en faisant la liaison, lorsque l'on glisse les champs ? Est ce que, du coup, je crée seulement le champs ClefAuteurStandard en numero auto ou je crée les mêmes champs ... avec les mêmes noms ?
    Au fait , quelle est la différence entre jointures ?

    3 Après tu sélectionnes les champs Nom et (pas) Prenom de tblAuteur et tu les glissent vers la table tblAuteurStandard. ... Tu fais la même chose avec la table tblStandard et TitreStandard.
    Je n'ai pas encore essayé, du coup, mais, quand je glisse le champs d'une table à une autre, ça ne crée pas la relation dans les deux sens ? Je dois le refaire en sens inverse ?

    Attention créer une relation ne suffit pas pour que Access crée les données. Il faut enter toi-même les infos sur l'auteur et le standard.
    On passera généralement par un formulaire principal basé sur tblAuteur par exemple et un sous-formulaire basé sur tblAuteurStandard pour éviter d'avoir à recopier les données venant des tables de référence (tblAuteur et tblStandard).
    Aïe ... J'ai bien peur de ne pas comprenbre du tout ... ! Quelles info vais je devoir entrer ? Les noms des auteurs et des standards sont deja remplis (et sans doublon)... Il ne s'agit que de le rassembler dans la 3eme table, non ?! D'ailleurs, à bien y reflechir, ça pourrait pas être une requête ?

    Au fait, il n'existe pas de champs prenom pour les auteurs. Ils sont tous sous la forme Nom, Prenom (Adair, Jerom). c'est d'ailleurs pour cela que je peux utiliser le champs title (nom) en clé (car il y a des auteurs de la même famille tel que Gershwin et sa femme). Cela evite le probleme des deux clés sur la même table , non ?
    Cependant, j'entends et comprends ton avis sur les numero auto.
    D'ailleurs, si je crée ce champs (et que j'y mets la clé je suppose ?), ne dois je pas aussi glisser ce champs (pour standards comme auteurs) vers la table 3 ?

    4 Tu coches "Appliquer l'intégrité référentielle" (pour forcer Access à vérifier que l'auteur choisi existe dans la tables des auteurs).
    Là je crois que je dois exposer quelques particularités de ma base.
    Dans la table des standards, au champs auteurs, ces derniers peuvent être plusieurs pour le même standard ! Dans ce cas, ils sont exposés ainsi : Nom1, Prenom1 / Nom2, Prenom2 / ... (jusqu'à 3 maximum)
    A priori, tout a été vérifié et chaque auteur present (seul ou pas) dans la table des standards existe dans celle des Auteurs ... mais ... comment pourrais je faire, à ce stade de la creation de la 3eme table, pour le verifier ? Le contraire, egalement, cad si tous les auteurs de la table des auteurs existe bel et bien en auteur (ou co auteur) dans celle des standards ? Qu'il n'y aie pas un auteur en trop d'un côté et en moins de l'autre ? Une faute d'orthographe ou un espace disparu est si vite arrivé .

    EDIT J'aimerais quand même signaler que ce sujet fait suite à celui ci . Le but est d'arriver justement à rassembler tous les standards fait par chaque auteur (avec qui le cas echeant) dans un champs (et sous une forme html precise)

  5. #5
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Quand je crée la 3eme table , est ce que je dois créer les champs "qui doivent venir des autres tables" ou bien est ce qu'ils se créeront en faisant la liaison, lorsque l'on glisse les champs ? Est ce que, du coup, je crée seulement le champs ClefAuteurStandard en numero auto ou je crée les mêmes champs ... avec les mêmes noms ?
    Tu conviens avec moi que le champ NomAuteur se trouve dans les deux tables (tblAuter et tblAuteurStandard) celui-ci est clef primaire dans tblAuteur et clef étrangère dans tblAuteurStandard. Il n'est donc pas question de le recréer. Comme l'a dit marot_r, il faut juste glisser le champ NomAuteur de la table tblAuteur vers la table tblAuteurStandard (en le dirigeant bien sûr sur NomAuteur) lors de la création de tes relations. (outils de base de données -> Relations, clic droit, affiche les tables)
    La même remarque pour le champ TitreStandard qui se trouve dans les tables tblAuteurStandard et tblStandard (tu fais le même travail pour créer la relation)
    Je n'ai pas encore essayé, du coup, mais, quand je glisse le champs d'une table à une autre, ça ne crée pas la relation dans les deux sens ? Je dois le refaire en sens inverse ?
    Un seul sens suffit. Il suffit alors de modifier la relation en faisant un clic droit dessus, modifier la relation. Cocher par exemple la suppression en cascade, mise à jour en cascade.
    Aïe ... J'ai bien peur de ne pas comprenbre du tout ... ! Quelles info vais je devoir entrer ? Les noms des auteurs et des standards sont deja remplis (et sans doublon)... Il ne s'agit que de le rassembler dans la 3eme table, non ?! D'ailleurs, à bien y reflechir, ça pourrait pas être une requête ?
    Tes données ne sont pas standard. Elles peuvent varier avec le temps. Ce ne sont pas les mêmes auteurs que tu as aujourd'hui qui resteront jusqu'en 2090. Il va donc falloir entrer les données que tu souhaites. C'est pour ça que marot_r a parlé de créer un formulaire. La Requête sera peut-être pour consulter les données pas vraiment pour les entrer.
    Au fait, il n'existe pas de champs prenom pour les auteurs. Ils sont tous sous la forme Nom, Prenom (Adair, Jerom). c'est d'ailleurs pour cela que je peux utiliser le champs title (nom) en clé (car il y a des auteurs de la même famille tel que Gershwin et sa femme).
    L'orthographe d'un champ dépend de toi à condition de respecter certaines petites règles et de ne pas te perdre dans ta conception. (prenom ou Prenom en terme de nom de champ, aucune importance)
    Cela evite le probleme des deux clés sur la même table , non ?
    Cependant, j'entends et comprends ton avis sur les numero auto.
    D'ailleurs, si je crée ce champs (et que j'y mets la clé je suppose ?), ne dois je pas aussi glisser ce champs (pour standards comme auteurs) vers la table 3 ?
    tu peux plutôt éviter cela en créant un champ id_auteur (clef primaire) dans la table tblAuteur qui sera de type NumeroAuto.

    Le reste des remarques dépendent de tes besoins. On ne fait que te proposer nos idées à toi de voir ce qui cadre avec ton projet.

    Cordialement.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2017
    Messages : 91
    Points : 16
    Points
    16
    Par défaut
    Aïe ... blocage sur l'etape de la 1ere relation.
    J'ai , comme vous l'avez conseillé, mis la clé sur un champs numero auto et pas sur les noms
    Cependant, il n'y a pas de doublons dansles noms des auteuirs et des standards

    J'ai pris le champs nom de la table auteurs et je l'ai glissé sur le champs nom de la table AuteurStandard ... et ça ne marche que si je ne coche PAS l'integrité referentielle, comme il m'a pourtant été conseillé.. Si je la coche (avec ou sans la cascade) il m'est indiqué une erreur d'integrité dans le champs de destination (celui de la table Auteir Sytandrad, pour le moment vide ...)

    Qu'est ce que ça signifie au juste ?

    Nom : capture_access.gif
Affichages : 123
Taille : 44,6 Ko

  7. #7
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Dans le cas où tu crées id_auteur comme clef primaire dans Auteurs, tu crées aussi id_auteur dans la table de liaison et c'est çà qui sera le lien.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  8. #8
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Dans le cas où tu décides de créer id_auteur comme clef primaire dans la table Auteur (de type NumeroAuto), tu vas donc aussi créer id_auteur dans la table StandardAuteur de type numérique. Et tu établis la relation entre les deux. Et dans ce cas tu peux supprimer Nom dans StandardAuteur
    En créant id_auteur dans la table StandardAuteur, tu pourras faire de celui-ci une liste déroulante (type de données liste déroulante ) et les données de ta liste viendront de la table Auteur (champ Nom).

    Cordialement.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  9. #9
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2017
    Messages : 91
    Points : 16
    Points
    16
    Par défaut
    Oui, ça fonctionne en important le champs id plutôt que nom, et en mettant numerique au lieu de texte pour les champs "cible" de la table AuteursStandards
    Merci à vous tous . Ma base de donnée contient desormais clé et relations, et j'ai un peu mieux compris ces concepts de base.
    A ce stade, la prochaine etape me semble d'arriver à visualiser les données sur cette 3 eme table, sachant qu les auteurs se partagent la création des standards.
    Ca semble plutôt le sujet de l'autre discussion, et celui ci peut être conclus résolu, mais si quelqu'un a une suggestion ...

  10. #10
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Etant donné que tu es satisfait de ce que tu as fait, tu peux cliquer sur le bouton Résolu au bas de la discussion et en créer une autre si besoin s'impose.

    Cordialement.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/01/2010, 14h54
  2. [Avis] Premier CV pour une simulation d'entretien
    Par Davidbrcz dans le forum CV
    Réponses: 2
    Dernier message: 24/06/2009, 10h30
  3. Je n'arrive pas à faire une boucle toute simple?
    Par Ouass dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2008, 14h17
  4. Réponses: 3
    Dernier message: 16/11/2007, 21h37
  5. Réponses: 7
    Dernier message: 16/05/2006, 19h12

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