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

3 réponses

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
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
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
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
HostOfSeraphim Messages postés 7340 Statut Contributeur 1 608
 
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