Différentes valeurs dans un champ de BDD

ledud -  
 ledud -
Bonjour,
Je dois créér une bdd avec dans un champ la nécéssité de mettre plusieurs valeurs. Quel type de chap utilisé ? est-ce que enum fait l'affaire et si oui comment l'utilise-t-on ?

exemple : max dupont fait partie de la famille dupont dont l'id-famille est 2. il se marie et fait également partie de la famille durant dont l'id-famille est 3
Pour max il faut donc que dans un champ id-famille je stocke la valeur 2 et la valeur 3.

Merci pour votre aide
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. ledud
     
    merci pour vos eclaircissements !!!

    une autre question si possible, je prépare ma bdd avec un champ set dans lequel sera stocké les différents id_famille du fameux max dupont. comment faire cette saisie via phpmyadmin ???
    0
  2. ben85350 Messages postés 622 Statut Membre 27
     
    Salut tu peut essayer le type SET qui s'utilise comment ceci : SET('valeur1','valeur2', 'valeur3'...)
    -1
    1. ledud
       
      et donc pour ma requete en gardant l'exemple ci dessus, si je cherche les membres de la famille dupont ce sera :

      ... where id_famille =2
      0
      1. ben85350 Messages postés 622 Statut Membre 27 > ledud
         
        oui par contre il faudrait faire un tableau pour savoir quelle valeur correspond à quelle famille
        -1
  3. HostOfSeraphim Messages postés 7340 Statut Contributeur 1 609
     
    Un peu d'analyse :

    [ Familles ] 1,N ---( faire partie )--- 1,N [ Personnes ]

    Ce qui signifie : "Une famille comporte une ou plusieurs personnes, une personne fait partie d'une ou plusieurs familles".

    1,N de chaque côté, ça se traduit par la création d'une table intermédiaire :

    Familles (IDFamille, NomFamille)
    Personnes (IDPersonne, NomPersonne, PrenomPersonne)
    LiensFamiliaux (#IDPersonne, #IDFamille)

    Remplissons un peu les tables pour l'exemple...

    Table Familles

    IDFamille NomFamille

    1 Dupont
    2 Martin
    3 Durand

    table Personnes

    IDPersonne NomPersonne PrenomPersonne
    1 Dupont Jean
    2 Dupont Alice
    3 Martin Albert

    Jean Dupont (IDPersonne 1) et Alice Dupont (IDPersonne 2) font tous deux partie de la famille Dupont, qui a l'IDFamille 1 :

    Table LiensFamiliaux :

    IDFamille IDPersonne
    1 1
    1 2

    Maintenant, nous voulons dire que Alice Dupont (IDPersonne 2) fait aussi partie de la famille Martin (IDFamille 2) :

    La table LiensFamiliaux devient donc :

    IDFamille IDPersonne
    1 1
    1 2
    2 2

    Et voilà, de cette façon tu peux avoir des membres dans plusieurs familles à la fois.

    Ensuite, il faut simplement faire les requêtes en prenant en compte cette table intermédiaire.

    -1