sql >> Database >  >> RDS >> Mysql

één artikel in meerdere categorieën

Je hebt drie tabellen nodig:

  • Eén tabel voor articles
  • Eén tabel voor categories
  • Eén tabel die artikelen aan categorieën linkt, we zouden het categories_per_article kunnen noemen . Deze tabel wordt vaak een Verbindingstabel of een Associatietabel genoemd .

Voorbeeldgegevens:

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

U zult zien dat artikel 1 (Fuzz) drie categorieën heeft en artikel 2 (Bizz) alleen categorie 1. We noemen dit een veel-op-veel-relatie (of n-to-n, bijvoorbeeld in ER of UML), omdat artikel 1 meerdere categorieën heeft en categorie 1 door meerdere artikelen wordt gebruikt.

U kunt alle mogelijke zoekopdrachten uitvoeren met behulp van dit schema - vraag gerust naar specifieke voorbeelden in opmerkingen (zoals How do I get all articles which have categories 1 and 3 but not 2 ).



  1. Hoe het langzame query-logboek in MySQL in te schakelen?

  2. Het is beter om minder dan gelijk aan of in te gebruiken in sql-query

  3. mijn nodejs-script wordt niet vanzelf afgesloten na een succesvolle uitvoering

  4. Minimale logging met INSERT...SELECT en Fast Load Context