Имате нужда от три таблици:
- Една таблица за
articles
- Една таблица за
categories
- Една таблица, свързваща статии с категории, можем да я наречем
categories_per_article
. Тази таблица често се нарича Съединителна таблица или таблица за асоцииране .
Примерни данни:
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
Ще видите, че статия 1 (Fuzz) има три категории, а статия 2 (Bizz) има само категория 1. Ние наричаме това отношение много към много (или n-to-n, например в ER или UML), тъй като статия 1 има множество категории, а категория 1 се използва от множество статии.
Можете да направите всички възможни заявки с помощта на тази схема - не се колебайте да питате в коментарите за конкретни примери (като How do I get all articles which have categories 1 and 3 but not 2
).