Liste de mot dans un champ mysql

laquiche Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
laquiche Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je souhaiterez faire un systeme de tags dans une galerie php que je developpe actuellement.

mon probleme est que je ne sais pas comment je pourrez stockés ces tags le plus simplement et le plus optimiser aussi.
existe-il un type de champ mysql qui permet de stockez plusieurs mots séparement ??
ou sinon quelles solutions vous semblerez la plus pratique et la optimiser a mettre en place ?

merci d'avance, si vous avez besoin d'autres explications n'esitez pas
laquiche
A voir également:

4 réponses

mouf13 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   17
 
Moi je ferai çà à première vue :

GALLERY (ID_GALLERY Primary auto_increment, LABEL)
GALLERY_TO_TAG Table de liaison (ID_GALLERY, ID_TAG)
TAG (ID_TAG Primary auto_increment, LABEL)

Apres vive le left join

tu peux aussi utiliser in(occurence1, occurence2) dans ta requete de selection pour piquer sur plusieurs occurence.

hf !
1
laquiche Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Salut, merci d'avoir repondu.

En fait j'ai pas tout comprit dasn ta methode, tu crée une table avec les gallery, chacune ayant un id unique, ensuite tu crée une table de tags avec chaque tags ayant un id unique et enfin une table qui lit les id des gallery aux id des tags c'est ca ???


et sinon aurait tu plus d'infos sur le in(occurance1, occurance2)

voila en gros j'ai pas tout suivi a ta reponse :D, puis-je avoir plus d'explications stp
merci
0
mouf13 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   17
 
sachant que tes tags sont unique, ainsi que tes galleries.
sachant qu'une gallerie peut possèder plusieurs tags :

cette table de jointure GALLERY_TO_TAG te permet simplement de faire le(s) rapprochements entre une gallerie est un ou plusieurs tags

Une fois cette requete mise en place avec left join (mysql.com), et pour faire une séléction de galleries selon plusieurs tags tu peux utiliser le mot in (mysql.com) dans la clause where de ta requete

Travail maché :
select G.ID_GALLERY, G.LIBELLE, T.ID_TAG, T.LIBELLE
from GALLERY as G
left join GALLERY_TO_TAG as GTT on (GTT.ID_GALLERY=G.ID_GALLERY)
left join TAG as T on (T.ID_TAG=GTT.ID_TAG)
where T.LIBELLE in('tag1', 'tag2', ..., 'tagN');


http://dev.mysql.com/doc/refman/5.0/fr/join.html
0
laquiche Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Bon merci pour ce travail maché mais je ne suis pas sur que cette technique soit la plus optimisé , je vais donc y reflechir encore, et essayé differentes technique dont la tienne, et je tien au courant de mes essais.

en tout cas merci et bonne continuation
0