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

 MySQL Discussion :

Aide a la creation d'une BDD


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut Aide a la creation d'une BDD
    Bonjour,
    je suis en train de creer une base de donnee pour gerer des contacts. J'aimerais avoir quelques avis et confirmations pour la creation de ma base de donnee avant de la remplir et de developper la partie php.
    J'ai un gros doute :

    Tout tourne autour de 2 tables principales : "personnes" et "structures" (salles de spectacles, radio, salles d'expositions, etc...)

    Donc une personne peut ou non travailler dans une structure.
    un structure est geree par 0 (dans le cas ou je ne connais pas la personne) ou plusieurs personnes.

    Ensuite j'ai plusieurs tables (Mails, telephones, faxs, etc.) et c'est la que se pose mon probleme.
    Par exemples pour les mails :

    • Une personne peut avoir 0 ou N mails
    • une structure peut avoir 0 ou N mails
    • un mail correspond a 0 ou N personnes
    • un mail correspond a 0 ou N structures



    Pour l'instant j'ai fait :

    Personne (id, nom, prenom)
    structure(id, nom)
    EtreContacte(id_personne, id_structure, id_mail)
    mail(id, mail)

    Personnes/structure <---> EtreContacte <---> Mail

    Est ce que ca vous choque ?
    Je doute quand a la gestion de l'integrite referentielle. Faut-il que je fasse deux table mail ? une pour les personnes et une autres pour les structures ?

    Je vous remercie d'avance

    ps: desole pour les accent je suis sur un clavier qwerty

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Les id, notamment en auto-cincrement, sont gérées au niveau table dans MySQL.
    Ce qui veut dire que la ligne mail(12,'tatouine@leweb.com') peut tout aussi bien relever de la personne d'id 12 que de la structure d'id 12.
    Tu peux ne conserver qu'une table mail mais en en typant les lignes mails(id,type, mail).
    D'autre part je ne vois pas ce qui va permettre de gérer la relation personne (0,1) <->(0,n)structure.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut
    Les id, notamment en auto-cincrement, sont gérées au niveau table dans MySQL.
    Ce qui veut dire que la ligne mail(12,'tatouine@leweb.com') peut tout aussi bien relever de la personne d'id 12 que de la structure d'id 12.
    Tu peux ne conserver qu'une table mail mais en en typant les lignes mails(id,type, mail).
    Oui mais un email peut faire reference a plusieurs personnes en meme temps. J'aimerais eviter d'inserer plusieurs fois la meme adress mail avec des id differents.


    D'autre part je ne vois pas ce qui va permettre de gérer la relation personne (0,1) <->(0,n)structure.
    En realite c'est plutot personne(0,n) <-> (0,n)structure. J'ai donc cree une table pour lier les personnes et les structures :
    gere_strucutre (id_personne, id_structure)

  4. #4
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Citation Envoyé par Mysth-R Voir le message
    Oui mais un email peut faire reference a plusieurs personnes en meme temps. J'aimerais eviter d'inserer plusieurs fois la meme adress mail avec des id differents.
    Au temps pour moi, mais tu as quand même un problème. J'ai bien (enfin ) compris qu'une adresse email peut appartenir à plusieurs personnes, voire aussi à une structure.
    Mais, du coup je ne vois pas bien comment tu gères la relation entre les personnes et leur(s) email(s), idem pour les structures.
    Citation Envoyé par Mysth-R Voir le message
    En realite c'est plutot personne(0,n) <-> (0,n)structure. J'ai donc cree une table pour lier les personnes et les structures :
    gere_strucutre (id_personne, id_structure)
    Là on est d'accord.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut
    Mais, du coup je ne vois pas bien comment tu gères la relation entre les personnes et leur(s) email(s), idem pour les structures.
    Et bien j'ai pense a creer une table commune aux tables [personnes] et [structure] qui s'appel (EtreContacte) et qui serait reliee a la table [Mails]
    Le schema serait le suivant :

    [Personnes] <-> (EtreContacte) <-> [Mails]
    [Structures] <-> (EtreContacte) <-> [Mails]

    ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [Personnes]      [Structures]
            |          |
           (EtreContacte)
                  |
               [Mails]
    Les tables EtreContacte et Mails serait donc communes a Personnes et Strucutures.

  6. #6
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Je ne te suis plus là.
    Ça sous-entendrait qu'une personne ne puisse avoir de mail que si elle est en contact avec une structure et réciproquement ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/11/2009, 17h04
  2. Probleme de creation d'une BDD avec SQL server 2005 et vista
    Par necer_cheniki dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 22/06/2008, 10h15
  3. aide pour decrypter creation d'une table
    Par zprr21 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 08/02/2007, 15h11
  4. Aide sur la création d'une bdd sous MySQL
    Par Shellai-93 dans le forum Débuter
    Réponses: 20
    Dernier message: 18/08/2006, 11h15

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