sql >> Databasteknik >  >> RDS >> Mysql

Hur lagrar man taggar i MySQL-taggar, ett fält totalt eller ett arkiverat för varje tagg?

Jag tror att Många till många förhållande kommer att hjälpa dig

något liknande

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

redigera:

Många till många-metoden är den mer normaliserade, men jag tror att den är svårast att implementera, eftersom den är baserad i joins för att få alla taggar för en given "produkt" i det här fallet. fördelar:

  1. helt normaliserad
  2. TORKA :eftersom om du behöver ändra ett taggnamn kan du göra det och du kommer att se förändringen överallt
  3. osv.

det andra tillvägagångssättet är att spara alla taggar i ett fält åtskilda av något (låt säga komma). Här har du fart på att få tag i taggarna. du behöver bara dela taggarna med den separatorn och det är det. Att spara taggar är också lättare. men jag gillar inte det här tillvägagångssättet eftersom om du behöver uppdatera en mall måste du gå artikel för artikel, dela upp, uppdatera och sedan spara.



  1. Vad är SQL-kommandot för att returnera fältnamnen för en tabell?

  2. UTC_TIMESTAMP() Exempel – MySQL

  3. Få en PHP PDO-anslutning från en mysql_connect()?

  4. Kapslad Infoga i och välj uttalande