sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo almacenar etiquetas en etiquetas MySQL, un campo en total o uno archivado para cada etiqueta?

Creo que Muchos a Muchos la relación te ayudará

algo como

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

editar:

el enfoque Many to Many es el más normalizado, pero creo que es el más difícil de implementar, ya que se basa en uniones para obtener todas las etiquetas de un "producto" dado en este caso. Ventajas:

  1. totalmente normalizado
  2. SECO :ya que si necesita cambiar el nombre de una etiqueta, puede hacerlo y verá el cambio en todas partes
  3. etc.

el otro enfoque es guardar todas las etiquetas en un campo separadas por algo (digamos una coma). Aquí tienes rapidez en cuanto a conseguir las etiquetas. solo necesita dividir las etiquetas por ese separador y eso es todo. Guardar etiquetas también es más fácil, pero no me gusta este enfoque porque si necesita actualizar una plantilla, debe ir artículo por artículo, dividir, actualizar y luego guardar.