sql >> Base de Datos >  >> RDS >> Mysql

un artículo en categoría múltiple

Necesitas tres tablas:

  • Una tabla para articles
  • Una tabla para categories
  • Una tabla que vincula artículos a categorías, podríamos llamarla categories_per_article . Esta tabla a menudo se denomina Tabla de unión o Tabla de asociación .

Datos de ejemplo:

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

Verá que el artículo 1 (Fuzz) tiene tres categorías, y el artículo 2 (Bizz) solo tiene la categoría 1. A esto lo llamamos relación de muchos a muchos (o n-to-n, por ejemplo en ER o UML), porque el artículo 1 tiene varias categorías y la categoría 1 es utilizada por varios artículos.

Puede realizar todas las consultas posibles utilizando este esquema. No dude en solicitar ejemplos específicos en los comentarios (como How do I get all articles which have categories 1 and 3 but not 2 ).