sql >> Databasteknik >  >> RDS >> Mysql

en artikel om flera kategorier

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



  1. lagra TEXT/BLOB i samma tabell eller inte?

  2. MySQL:Optimering GRUPPER MED flera nycklar

  3. Ställ in tidszon för MYSQL NOW()

  4. Hur man uppdaterar från select med en Join