Du behöver tre bord:
- En tabell för
articles
- En tabell för
categories
- En tabell som länkar artiklar till kategorier, vi kan kalla den
categories_per_article
. Den här tabellen kallas ofta för en Junction-tabell eller en associationstabell .
Exempeldata:
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
Du kommer att se att artikel 1 (Fuzz) har tre kategorier och artikel 2 (Bizz) bara har kategori 1. Vi kallar detta en many-to-many-relation (eller n-till-n, till exempel i ER eller UML), eftersom artikel 1 har flera kategorier och kategori 1 används av flera artiklar.
Du kan göra alla möjliga frågor med detta schema - fråga gärna i kommentarerna om specifika exempel (som How do I get all articles which have categories 1 and 3 but not 2
).