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