Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przechowywać tagi w tagach MySQL, jedno pole w sumie lub jedno pole dla każdego tagu?

Myślę, że Wiele do Wielu związek ci pomoże

coś takiego

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

edytuj:

podejście Wiele do Wielu jest bardziej znormalizowane, ale myślę, że najtrudniejsze do zaimplementowania, ponieważ opiera się na złączeniach, aby w tym przypadku uzyskać wszystkie tagi dla danego „produktu”. Zalety:

  1. całkowicie znormalizowany
  2. DRY :ponieważ jeśli potrzebujesz zmienić nazwę tagu, możesz to zrobić i wszędzie zobaczysz zmianę
  3. itd.

innym podejściem jest zapisanie wszystkich tagów w jednym polu oddzielonym czymś (powiedzmy przecinkiem). Tutaj masz szybkość w zakresie zdobywania tagów. wystarczy podzielić tagi według tego separatora i to wszystko. Zapisywanie tagów też jest łatwiejsze. Ale nie podoba mi się to podejście, ponieważ jeśli chcesz zaktualizować szablon, musisz przejść artykuł po artykule, podzielić, zaktualizować, a następnie zapisać.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie urządzenia z systemem Android z serwerem localhost

  2. domyślnie kolumna z pustym ciągiem

  3. Wyzwalacz Mysql po aktualizacji wstawia się do innej tabeli z warunkiem

  4. Kolejność sortowania SQL według kolejności określonej w zapytaniu

  5. Relacja jeden do jednego w MySQL