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
).