Bagaimana untuk mereka bentuk struktur jadual MySQL untuk menyokong sistem peperiksaan dalam talian?
Dengan perkembangan pesat Internet, semakin banyak institusi dan syarikat pendidikan telah mula menggunakan sistem peperiksaan dalam talian untuk menjalankan peperiksaan. Sistem peperiksaan dalam talian yang cekap dan boleh dipercayai tidak dapat dipisahkan daripada reka bentuk pangkalan data yang munasabah. Artikel ini akan memperkenalkan cara mereka bentuk struktur jadual MySQL untuk menyokong sistem peperiksaan dalam talian dan menyediakan contoh kod khusus.
Untuk menyokong fungsi sistem peperiksaan dalam talian, kami perlu mereka bentuk jadual berikut: jadual pengguna, jadual peperiksaan, jadual soalan, jadual rekod jawapan dan jadual skor. Reka bentuk setiap jadual akan diperkenalkan di bawah.
CREATE TABLE `user` ( `user_id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `name` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `role` ENUM('student', 'teacher') NOT NULL, PRIMARY KEY (`user_id`), UNIQUE KEY `username_UNIQUE` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `exam` ( `exam_id` INT(11) NOT NULL AUTO_INCREMENT, `exam_name` VARCHAR(255) NOT NULL, `exam_time` DATETIME NOT NULL, `duration` INT(11) NOT NULL, PRIMARY KEY (`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `question` ( `question_id` INT(11) NOT NULL AUTO_INCREMENT, `exam_id` INT(11) NOT NULL, `content` TEXT NOT NULL, `options` TEXT NOT NULL, `answer` VARCHAR(255) NOT NULL, PRIMARY KEY (`question_id`), FOREIGN KEY (`exam_id`) REFERENCES `exam`(`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `answer_record` ( `record_id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, `question_id` INT(11) NOT NULL, `selected_answer` VARCHAR(255) NOT NULL, `answer_time` DATETIME NOT NULL, PRIMARY KEY (`record_id`), FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`), FOREIGN KEY (`question_id`) REFERENCES `question`(`question_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `score` ( `score_id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, `exam_id` INT(11) NOT NULL, `score` INT(11) NOT NULL, PRIMARY KEY (`score_id`), FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`), FOREIGN KEY (`exam_id`) REFERENCES `exam`(`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Di atas adalah idea asas dan contoh kod untuk mereka bentuk struktur jadual MySQL untuk menyokong sistem peperiksaan dalam talian. Dengan mereka bentuk struktur jadual pangkalan data secara rasional, prestasi dan kebolehselenggaraan sistem boleh dipertingkatkan, menjadikan sistem peperiksaan dalam talian lebih cekap, selamat dan stabil. Saya harap artikel ini akan membantu anda mereka bentuk struktur pangkalan data sistem peperiksaan dalam talian anda.
Atas ialah kandungan terperinci Bagaimana untuk mereka bentuk struktur jadual MySQL untuk menyokong sistem peperiksaan dalam talian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!