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 :

Conseils pour la modélisation d'une base de données


Sujet :

Modélisation

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut Conseils pour la modélisation d'une base de données
    Bonjour à tous,

    je sollicite votre aide pour la modélisation de ma base de données.

    Avant de vous exposer la situation, il faut savoir que les données sont dans un fichier excel (récupérés via un formulaire) et que j'ai déjà tenté un import de Excel
    vers Access (via le wizard) mais je ne comprends pas pourquoi j'ai des données redondantes dans une des tables, des données manquantes dans d'autres...

    Je pense donc le faire manuellement. ça me permettra au passage de mieux comprendre les choses.

    Je vous présente le projet :

    j'ai des clients : nom, prénom, date de naissance, ville de naissance, pays de naissance, adresse postale, ville, pays de résidence, numéro de téléphone, mail, nombre d'enfant, nationalité.

    Client à un conjoint ou non. Si oui il faudra renseigner les mêmes infos pour lui.

    Client peut avoir des enfants et donc il nous faudra : nom de chaque enfant, prénom, sexe, date de naissance, ville de naissance, pays de naissance.

    Voila comment je comptais organiser la chose :

    tClients
    ID_Clients
    NOM
    PRENOM
    Date, lieu naissance
    Nom conjoint
    Prénom conjoint
    Date, lieu naissance conjoint
    adresse postale
    Mail
    Tel
    ID_Pays (Pays de naissance)
    ID_Pays (Pays de résidence)
    ID_Pays (Nationalité)
    ID_Pays (Pays de naissance conjoint)
    ID_Pays (Nationalité conjoint)
    ID_Enfant
    ...


    tPays
    ID_Pays
    Fançais
    Belgique
    etc...

    tEnfant
    ID_Enfant
    ID_Client (parents)
    ID_Sexe
    NOM
    PRENOM
    Date naissance
    ID_Pays (Pays de naissance)

    tSexe
    ID_Sexe
    Feminin
    Masculin

    Liaison entre tClients et tEnfant
    ID_Clients
    ID_Enfants
    nombre_enfant

    Question : Comment trouvez-vous cette organisation des données ? Comment pourrait-on l'améliorer ?

    Question : Puis-je utiliser la table tPays pour renseigner le pays de naissance, de résidence et l'utiliser pour la nationalité ?

    Ensuite l'idée est de mettre en place des formulaires par service :
    service 1 ne peux afficher que certaines infos dont il a besoin
    Service 2 d'autres infos
    etc...

    Faire des formulaires de consultation, sans droits de modification pour éviter les bavures

    Question : Est-il possible de garder d'anciens enregistrements lorsqu'une valeur est modifiée ?

    Merci par avance

  2. #2
    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
    Pour ce qui est de la structure des tables

    tClients
    ID_Clients
    NOM
    PRENOM
    Date
    lieu naissance
    Nom conjoint
    Prénom conjoint
    Date, lieu naissance conjoint
    adresse postale
    Mail
    Tel
    Pays de naissance
    Pays de résidence
    Nationalité
    Pays de naissance conjoint
    Nationalité conjoint
    ID_Enfant
    ID_Sexe

    tPays
    ID_Pays
    Nom_pays

    tSexe
    ID_Sexe
    Sexe


    Les champs pays de naissance, pays de résidence, pays du conjoint de la table tClient vont pointer vers Nom_pays de la table tPays

    Je ne vois l'importance de ceci
    Liaison entre tClients et tEnfant
    ID_Clients
    ID_Enfants
    nombre_enfant
    Pour le reste çà marche.

    Question 1 (voir ce qui précède )
    Question 2 oui
    Question 3 oui. C'est toi qui définit les règles de gestion de tes données

    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 !!!

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Super merci pour ta réponse

    Je ne vois l'importance de ceci
    Liaison entre tClients et tEnfant
    ID_Clients
    ID_Enfants
    nombre_enfant
    En fait je comptais ajouter cela car les enfants ont (souvent) le même nom que leurs parents donc faire le lien entre parents et enfants sans avoir à ressaisir le nom par exemple.

    Ou dois-je indiquer le nombre d'enfants ? leur(s) prénom(s) ? Dans la table tclients ?

  4. #4
    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
    Ou dois-je indiquer le nombre d'enfants ? leur(s) prénom(s) ? Dans la table tclients ?
    Bien sûr dans la table tEnfant qui est bien structuré tel que tu l'as fait.
    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 !!!

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour looping_92, bertiny,

    Quelques petites remarques:

    1- NOM est un mot réservé d'Access. Voici la liste: https://support.office.com/fr-fr/art...ID=HA010341461
    2- Une bonne pratique est de distingué si possible la provenance du champ donc dans ton exemple le champ NOM de la table client pourrait devenir Nom_Client et PRENOM devenir Prenom_Client, la table enfant le champ NOM deviendrait Nom_Enfant etc.... Ainsi si une requête avait la table client et enfant tu ne serais pas obligé d'écrire pour le champ NOM de la table client : tClients.NOM mais juste Nom_Client.
    3- Le champ date, lieu de naissance devrait être 2 champs distincts. De plus date est un autre mot réservé d'Access, donc Date_Naissance serait une solution.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  6. #6
    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
    Merci Robert pour le relais. Il ne reste qu'à notre ami de mettre en pratique ces remarques.
    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 !!!

  7. #7
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Désolé pour la réponse tardive. Merci à vous messieurs pour ces conseils

    je mets tout cela en oeuvre et vous soumettrai le resultat.

  8. #8
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Voici à quoi ressemble mes tables :

    Nom : Les_Tables.PNG
Affichages : 539
Taille : 29,4 Ko

    Qu'en pensez-vous ?

    Bon, j'avoue que j'ai un peu de mal à faire les différentes relations.

    Questions :

    je vois bien la relation entre IdEnfant de tEnfants et IdEnfant de tClients

    1. Ai-je besoin d'en faire une autre entre IdParent de tEnfants et IdClient de tClients ? Lorsque je tente de faire une seconde relation entre deux tables j'ai le message suivant : "Une relation existe déja, voulez-vous modifier la relation existante..."
    2. De plus comment faire pour établir la "relation" entre NomPays de tPays et les différents champs (PaysNaissanceEpoux1, PaysNaissanceEpoux2, PaysResidence...) s'y rapportant dans la table tClients par exemple ?
    3. Je me pose la même question pour Civilité dans tCivilité et CivilitéEpoux1 et CivilitéEpoux2 de tClients ?


    Est-ce dans mon formulaire que cette "realtion" / ou ce "lien" sera fait(e) ?

    Merci pour vos éclairages.

  9. #9
    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
    Tu auras plutôt un truc de ce genre
    Nom : client.PNG
Affichages : 414
Taille : 21,1 Ko

    Epouse doit constituer une table à part entière comme je l'ai décris.

    1- Non. La relation que tu as établis suffit
    2- Voir comment je l'ai fait.
    3 -Si la Civilité doit apparaître chez l'épouse alors tu crées un champ ID_Civilite dans la table TEpouse et tu établis une relation entre ID_Civilite de la table TCivilite et ID_Civilite de la table TEpouse.

    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 !!!

  10. #10
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Merci Bertiny pour cette proposition / correction,

    ne faut-il pas une relation entre (?):
    • tCivilité et tEnfant
    • tCivilité et tEpouse


    Dans mon cas, le client peut être un Mr ou une Dame. N'est-ce pas génant de couper la table client en 2 tables distinctes comme tu le proposes ?
    Ce que je veux dire par là c'est qu'un client n'est pas forcément un homme et en couple.


    Merci.

  11. #11
    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
    ne faut-il pas une relation entre (?):
    tCivilité et tEnfant
    tCivilité et tEpouse
    Voir ce que j'ai proposé à la suite du post. Celà reste aussi vrai pour TEnfant en ce qui concerne la civilité.
    Dans mon cas, le client peut être un Mr ou une Dame. N'est-ce pas génant de couper la table client en 2 tables distinctes comme tu le proposes ?
    Dans ce cas, tu vas renommer la table TEpouse par TConjoint (car si le client est un homme alors "son conjoint " est une femme et vice versa) alors elle aura un sens en le faisant ainsi.
    Ce que je veux dire par là c'est qu'un client n'est pas forcément un homme et en couple.
    au cas où un client n'est pas en couple alors le champ NomConjoint (bien évidemment après avoir renommer la table comme je l'ai dit plus haut ), restera vide.
    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 !!!

  12. #12
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Merci pour toutes ces réponses.

    Je modifie tout cela et je reviens en faire profiter tout le monde

  13. #13
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Voici les dernières modifications

    Nom : Les_Tables_2.PNG
Affichages : 325
Taille : 58,1 Ko

    Est-ce correct selon vous ?

    Merci.

  14. #14
    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
    Çà marche
    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 !!!

  15. #15
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Cool merci

    Nom : Formulaire_KO.PNG
Affichages : 292
Taille : 16,5 Ko

    J'ai cette erreur lorsque je tente de remplir un formulaire. J'ignore si cela est dû aux relations...
    J'ai tenté pleins de choses mais toujours le même résultat...

    En revanche, lorsque je décoche "Appliquer l'intégrité référentielle" de toutes les relations, les données saisies dans le formulaire sont biens enregistrées dans la BD.

    Avez-vous une idée d'où cela peut-il bien venir ?

  16. #16
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une remarque sur l'adresse résidence.

    Une adresses peut-être composée de plusieurs lignes et le code postal et la ville sont à mettre dans deux champs à part.

    Donc pour l'adresse il faudrait 4 champs d'adresses :

    Ad1
    Ad2
    Ad3
    Ad4

    Deux champs pour le code postal et la ville

    Code_postal
    Ville

    Voilà comment il faut structurer une adresse, car si un jour tu es amené un faire un mailing, ta première structure ne te permettra pas de faire une adresse postale normalisée.

    Philippe

  17. #17
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Bonjour Philippe,

    merci pour la précision. Je corrige

  18. #18
    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
    En revanche, lorsque je décoche "Appliquer l'intégrité référentielle" de toutes les relations, les données saisies dans le formulaire sont biens enregistrées dans la BD.
    En réalité l'intégrité référentielle ne doit pas poser de problème. En créant la civilité dans les tables TClient, TConjoint et TEnfant, tu mets le type de données à "Assistant de Liste de choix". Ceci est aussi valable pour les champs PaysResidence, PaysNaissance des mêmes tables. Car tu auras juste à faire un choix sur les valeurs stockées dans les tables TPays et TCivilite.

    Ce que Access va faire en arrière plan c'est de créer des tables TPays_1, TPays_2,.. lorsque Pays pointe plus d'une fois dans la même table. Même chose pour civilité.

    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 !!!

  19. #19
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2017
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    J'ai modifié les champs en conséquences, mais l'erreur perdure...

    Les modifications sont-elles correctes ? Modif faites dans les 3 tables : tclients, tconjoint et tenfants et pour les différents attributs (nationalité, pays de naissance et de résidence)

    Nom : Type_Données.JPG
Affichages : 291
Taille : 87,0 Ko

    Une idée ?

    Merci.

  20. #20
    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
    PaysResidence doit aussi être de type numérique (le créer par l'assistant de liste de choix, qui pointera sur le champ NomPays de la table TPays). Ceci est valable pour toute les autres tables où tu souhaites utiliser : le nom du pays, la civilité. Tu feras le même processus.
    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.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/07/2015, 10h55
  2. Petit conseil pour un projet avec une base de données
    Par PasTaper dans le forum Débuter
    Réponses: 2
    Dernier message: 06/08/2012, 17h05
  3. [Débutant] Petit conseil pour mise à jour d'une base de données
    Par Nixeus dans le forum C#
    Réponses: 3
    Dernier message: 01/12/2011, 11h56
  4. Conseil pour le choix d'une base de données
    Par gta126 dans le forum VB.NET
    Réponses: 3
    Dernier message: 20/06/2008, 09h40
  5. Réponses: 4
    Dernier message: 22/09/2004, 09h17

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