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

ein Artikel in mehreren Kategorien

Sie benötigen drei Tabellen:

  • Eine Tabelle für articles
  • Eine Tabelle für categories
  • Eine Tabelle, die Artikel mit Kategorien verknüpft, wir könnten sie categories_per_article nennen . Diese Tabelle wird oft als Verbindungstabelle oder Assoziationstabelle bezeichnet .

Beispieldaten:

ARTICLES
ID | Name | Description
1  | Fuzz | A fuzzy three
2  | Bizz | A five that means bizznezz

CATEGORIES
ID  |  Name 
1   |  Prime numbers
2   |  Multiples of five
3   |  Smaller than four

CATEGORIES_PER_ARTICLE
ID | ARTICLE_ID | CATEGORY_ID
1  | 1          | 1
2  | 1          | 2
3  | 1          | 3
4  | 2          | 1

Sie werden sehen, dass Artikel 1 (Fuzz) drei Kategorien hat und Artikel 2 (Bizz) nur Kategorie 1 hat. Wir nennen dies einen Viele-zu-Viele-Beziehung (oder n-zu-n, zum Beispiel in ER oder UML), da Artikel 1 mehrere Kategorien hat und Kategorie 1 von mehreren Artikeln verwendet wird.

Sie können alle möglichen Abfragen mit diesem Schema durchführen - Sie können gerne in Kommentaren nach bestimmten Beispielen fragen (wie How do I get all articles which have categories 1 and 3 but not 2 ).