Mysql
 sql >> Base de données >  >> RDS >> Mysql

un article sur plusieurs catégories

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