Anda membutuhkan tiga tabel:
- Satu tabel untuk
articles
- Satu meja untuk
categories
- Satu tabel yang menghubungkan artikel ke kategori, kita bisa menyebutnya
categories_per_article
. Tabel ini sering disebut Tabel persimpangan atau tabel Asosiasi .
Contoh data:
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
Anda akan melihat bahwa artikel 1 (Fuzz) memiliki tiga kategori, dan artikel 2 (Bizz) hanya memiliki kategori 1. Kami menyebutnya hubungan banyak-ke-banyak (atau n-ke-n, misalnya dalam ER atau UML), karena artikel 1 memiliki beberapa kategori, dan kategori 1 digunakan oleh beberapa artikel.
Anda dapat melakukan semua pertanyaan yang mungkin menggunakan skema ini - jangan ragu untuk bertanya di komentar untuk contoh spesifik (seperti How do I get all articles which have categories 1 and 3 but not 2
).