Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment stocker les tags dans les tags MySQL, un champ au total ou un archivé pour chaque tag ?

Je pense que le Many to Many relation vous aidera

quelque chose comme

--------             -----------------           ------------
- tags -   <-------> - products_tags - <-------> - products - 
--------             -----------------           ------------

modifier :

l'approche plusieurs à plusieurs est la plus normalisée, mais je pense que la plus difficile à mettre en œuvre, car elle est basée sur des jointures pour obtenir toutes les balises d'un "produit" donné dans ce cas. avantages :

  1. totalement normalisé
  2. DRY  :puisque si vous avez besoin de changer le nom d'un tag, vous pouvez le faire et vous verrez le changement partout
  3. etc.

l'autre approche consiste à enregistrer toutes les balises dans un champ séparé par quelque chose (disons une virgule). Ici, vous avez la vitesse en termes d'obtention des balises. vous avez juste besoin de diviser les balises par ce séparateur et c'est tout. L'enregistrement des balises est également plus facile, mais je n'aime pas cette approche car si vous devez mettre à jour un modèle, vous devez aller article par article, diviser, mettre à jour, puis enregistrer..