Menyimpan Pelbagai Pilihan dalam Satu Jadual: Merekabentuk Struktur Pangkalan Data Fleksibel
Pertimbangkan senario berikut: anda perlu mereka bentuk aplikasi untuk mendapatkan hasil pengiraan di mana pelajar boleh mempunyai beberapa kursus yang dilampirkan kepada mereka. Bagaimanakah anda boleh menyimpan data ini dengan berkesan dalam pangkalan data MySQL?
Secara tradisinya, seseorang mungkin mempertimbangkan untuk menyimpan subjek sebagai tatasusunan dalam medan. Walau bagaimanapun, pendekatan ini mempunyai had prestasi dan penyelenggaraan. Sebaliknya, penyelesaian yang lebih cekap dan fleksibel ialah menggunakan jadual simpang untuk menghubungkan pelajar dan kursus.
Struktur Pangkalan Data
Berikut ialah struktur pangkalan data yang dicadangkan:
SCJunction jadual (Pelajar /Course Junction): Menghubungkan pelajar dan kursus. Ia termasuk:
Indeks Komposit untuk Pendapatan Data Pantas
Untuk meningkatkan prestasi bagi pertanyaan yang melibatkan perhubungan pelajar-kursus, cipta indeks komposit pada:
Indeks ini akan mempercepatkan carian data berdasarkan sama ada studentID atau courseID.
Mengapa Jadual Junction ?
Jadual simpang seperti SCJunction menawarkan banyak kelebihan:
Contoh Pertanyaan
Di bawah ialah beberapa contoh pertanyaan untuk menggambarkan pangkalan data struktur:
Cari kursus yang diambil oleh pelajar:
SELECT s.FullName, c.courseName FROM SCJunction j JOIN student s ON j.studentId = s.studentId JOIN course c ON j.courseId = c.courseId WHERE s.studentId = <student_id> AND j.term = <term>;
Cari pelajar yang mendaftar dalam khusus kursus:
SELECT s.FullName, s.studentId FROM SCJunction j JOIN student s ON j.studentId = s.studentId WHERE j.courseId = <course_id> AND j.term = <term>;
Kesimpulan
Dengan menggunakan jadual simpang, indeks komposit dan hubungan jadual yang betul, anda boleh menyimpan dengan cekap berbilang pilihan dalam satu jadual, memastikan integriti data dan mendapatkan semula data yang cepat. Struktur pangkalan data yang fleksibel ini menyediakan asas yang kukuh untuk keperluan pengiraan hasil aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Berbilang Pendaftaran Kursus dengan Cekap untuk Pelajar dalam Pangkalan Data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!