Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie speichert man Tags in MySQL-Tags, ein Feld insgesamt oder ein Feld für jedes Tag?

Ich denke, der Many to Many Beziehung wird Ihnen helfen

so etwas wie

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

Bearbeiten:

Der Many-to-Many-Ansatz ist der normalisiertere, aber meiner Meinung nach am schwierigsten zu implementieren, da er in diesem Fall auf Verknüpfungen basiert, um alle Tags für ein bestimmtes "Produkt" zu erhalten. Vorteile:

  1. völlig normalisiert
  2. DRY :denn wenn Sie einen Tag-Namen ändern müssen, können Sie das tun und Sie werden die Änderung überall sehen
  3. usw.

Der andere Ansatz besteht darin, alle Tags in einem Feld zu speichern, getrennt durch etwas (sagen wir Komma). Hier haben Sie Geschwindigkeit in Bezug auf das Abrufen der Tags. Sie müssen nur die Tags durch dieses Trennzeichen teilen und das war's. Das Speichern von Tags ist auch einfacher. Aber ich mag diesen Ansatz nicht, denn wenn Sie eine Vorlage aktualisieren müssen, müssen Sie Artikel für Artikel durchgehen, teilen, aktualisieren und dann speichern..