Bagaimana Anda merancang basis data untuk mendukung fitur penandaan berikut:
- item dapat memiliki sejumlah besar tag
- mencari semua item yang ditandai dengan serangkaian tag yang diberikan harus cepat (item harus memiliki SEMUA tag, jadi ini adalah pencarian-AND, bukan pencarian-OR)
- membuat / menulis item mungkin lebih lambat untuk mengaktifkan pencarian cepat / membaca
Idealnya, pencarian semua item yang ditandai dengan (setidaknya) satu set tag yang diberikan harus dilakukan menggunakan pernyataan SQL tunggal. Karena jumlah tag yang dicari serta jumlah tag pada item apa pun tidak diketahui dan mungkin tinggi, menggunakan GABUNGAN tidak praktis.
Ada ide?
Terima kasih atas semua jawaban sejauh ini.
Namun, jika saya tidak salah, jawaban yang diberikan menunjukkan bagaimana melakukan pencarian ATAU pada tag. (Pilih semua item yang memiliki satu atau lebih dari n tag). Saya mencari AND-search yang efisien. (Pilih semua item yang memiliki SEMUA n tag - dan mungkin lebih.)