Tags et optimisation base de données

  • Auteur de la discussion Auteur de la discussion yann214
  • Date de début Date de début
WRInaute occasionnel
Bonjour,

J'en appelle à votre expérience quant à la gestion de tags (associés à des produits ou des articles par exemple).
Quelle est la meilleure structure de données à adopter si on veut gérer par exemple un nuage de tags, faire des requêtes sur des mots particuliers, etc.

Vaut-il mieux avoir des champs varchar supplémentaires directement dans l'enregistrement du produit :

TABLE PRODUIT
Code:
PROD_ID:integer
DESCRIPTION:varchar
TAG1:varchar
TAG2:varchar
TAG3:varchar

Vaut-il mieux avoir une table de tags et associer des tags au produits :

TABLE PRODUIT
Code:
PROD_ID:integer
DESCRIPTION:varchar
TAG_ID1:integer
TAG_ID2:integer
TAG_ID3:integer

TABLE TAG
Code:
TAG_ID:integer
MOT:varchar
 
WRInaute impliqué
Ni l'un ni l'autre (enfin pour ce que j'en pense) mais :

TABLE PRODUIT

Code:
PROD_ID:integer
DESCRIPTION:varchar

TABLE TAG

Code:
TAG_ID:integer
MOT:varchar

TABLE TAG_PRODUIT

Code:
PROD_ID:integer
TAG_ID:integer
 
WRInaute occasionnel
Cette structure est très ressemblante à la deuxième que je proposais, c'est pour ça que je ne l'ai pas citée.
C'est plutôt sur le fait de travailler sur des IDs ou des Chaînes que je me posais la question...
En sachant que pour les tags on travaille quand même souvent avec des chaînes, notamment pour les recherches... je ne sais pas si c'est intelligent de vouloir associer des IDs aux tags...
 
WRInaute occasionnel
Les utilisations des tags ne sont-elles pas toujours les mêmes ?

Extraire tous les produits contenant le tag "tag1"
Extraire tous les produits contenant le tag "tag1" et/ou le tag "tag2"
Rechercher tous les tags "proches" du tag "tag1"

Faut-il faire une recherche directement sur toutes les chaînes de la table des produits (structure 1), ou faire une recherche sur la table des tags pour sortir l'ID du tag et faire ensuite une recherche sur la table des produits avec cet ID (structure 2) ?

Dans le cas de la structure 2, en faisant une jointure je pense que ça ne change rien par rapport à la structure 1, mais en procédant avec ces deux reuqêtes de suite...
 
Discussions similaires
Haut