Mysql
 sql >> Database >  >> RDS >> Mysql

un articolo su più categorie

Hai bisogno di tre tabelle:

  • Una tabella per articles
  • Una tabella per categories
  • Una tabella che collega gli articoli alle categorie, potremmo chiamarla categories_per_article . Questa tabella è spesso chiamata tabella di giunzione o tabella di associazione .

Dati di esempio:

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

Vedrai che l'articolo 1 (Fuzz) ha tre categorie e l'articolo 2 (Bizz) ha solo la categoria 1. Lo chiamiamo relazione molti-a-molti (o n-to-n, ad esempio in ER o UML), perché l'articolo 1 ha più categorie e la categoria 1 è utilizzata da più articoli.

Puoi eseguire tutte le possibili query utilizzando questo schema:sentiti libero di chiedere nei commenti esempi specifici (come How do I get all articles which have categories 1 and 3 but not 2 ).