sql >> Databáze >  >> RDS >> Mysql

jeden článek ve více kategoriích

Potřebujete tři tabulky:

  • Jedna tabulka pro articles
  • Jedna tabulka pro categories
  • Jedna tabulka propojující články s kategoriemi, můžeme ji nazvat categories_per_article . Tato tabulka se často nazývá Spojovací tabulka nebo asociační tabulka .

Příklad dat:

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

Uvidíte, že článek 1 (Fuzz) má tři kategorie a článek 2 (Bizz) má pouze kategorii 1. Říkáme tomu vztah mnoho k mnoha (nebo n-to-n, například v ER nebo UML), protože článek 1 má více kategorií a kategorii 1 používá více článků.

Pomocí tohoto schématu můžete zadat všechny možné dotazy – neváhejte se zeptat v komentářích na konkrétní příklady (jako How do I get all articles which have categories 1 and 3 but not 2 ).



  1. Vkládání proměnných do SQL dotazu pro node-mysql

  2. Jak zkontrolovat, zda se výsledky MySQL vrátily prázdné v PHP?

  3. Jak fungují pohledy PostgreSQL security_barrier?

  4. Připojit MySQL Workbench k WSL MySQL?