Vous avez besoin de trois tables :
- Un tableau pour les
articles
- Un tableau pour les
categories
- Un tableau reliant les articles aux catégories, nous pourrions l'appeler
categories_per_article
. Cette table est souvent appelée table de jonction ou table d'association .
Exemple de données :
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
Vous verrez que l'article 1 (Fuzz) a trois catégories, et l'article 2 (Bizz) n'a que la catégorie 1. Nous appelons cela un relation plusieurs-à-plusieurs (ou n-à-n, par exemple dans ER ou UML), car l'article 1 a plusieurs catégories et la catégorie 1 est utilisée par plusieurs articles.
Vous pouvez faire toutes les requêtes possibles en utilisant ce schéma - n'hésitez pas à demander dans les commentaires des exemples spécifiques (comme How do I get all articles which have categories 1 and 3 but not 2
).