Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mereka bentuk struktur jadual MySQL yang fleksibel untuk melaksanakan fungsi tinjauan soal selidik?

Bagaimana untuk mereka bentuk struktur jadual MySQL yang fleksibel untuk melaksanakan fungsi tinjauan soal selidik?

王林
王林asal
2023-10-31 08:44:361187semak imbas

Bagaimana untuk mereka bentuk struktur jadual MySQL yang fleksibel untuk melaksanakan fungsi tinjauan soal selidik?

Bagaimana untuk mereka bentuk struktur jadual MySQL yang fleksibel untuk melaksanakan fungsi tinjauan soal selidik?

1. Pengenalan
Tinjauan soal selidik digunakan secara meluas dalam pengumpulan data dan penyelidikan dalam masyarakat moden Untuk menyesuaikan secara fleksibel dengan keperluan tinjauan soal selidik yang berbeza, kami perlu mereka bentuk struktur jadual MySQL yang munasabah. Artikel ini akan memperkenalkan cara mereka bentuk struktur jadual MySQL yang fleksibel untuk melaksanakan fungsi soal selidik, dan menyediakan contoh kod khusus.

2. Analisis Keperluan

  1. Soal selidik termasuk berbilang soalan, dan setiap soalan boleh mempunyai berbilang pilihan.
  2. Pengguna boleh memilih untuk mengisi soal selidik dan memilih pilihan untuk setiap soalan.
  3. Hasil soal selidik perlu disimpan dalam pangkalan data untuk statistik dan analisis seterusnya. .
Jadual Soalan (soalan)

Medan: id (kunci utama), survey_id (id soal selidik, kunci asing), kandungan (kandungan soalan), jenis (jenis soalan, seperti pilihan tunggal, aneka pilihan, dll.)

Pilihan jadual (pilihan)
    Medan: id (kunci utama), id_soalan (id soalan, kunci asing), kandungan (kandungan pilihan)

  1. Jadual jawapan (jawapan)
  2. Bidang: id (kunci utama), survey_id (id soal selidik, kunci asing ), question_id (id soalan, kunci asing) ), option_id (id pilihan, kunci asing), user_id (id pengguna), create_at (isi masa)

  3. 4. Pelaksanaan khusus
  4. Berikut akan menggunakan pernyataan MySQL untuk mencipta di atas jadual dan berikan beberapa kod sampel.
  5. --BUAT tinjauan JADUAL (
  6. id INT PRIMARY KEY AUTO_INNCREMENT,
    title VARCHAR(255) NOT NULL,
  7. dibuat_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
ATERE);


INTENDA TIMESTAMP

; UTO_INCREMENT,

survey_id INT NOT NULL,
kandungan TEKS BUKAN NULL,
taip TINYINT NOT NULL, -- 1 bermaksud pilihan tunggal, 2 bermaksud pilihan berganda
KUNCI ASING (id_tinjauan) RUJUKAN tinjauan(id)
--BUAT pilihan JADUAL
id INT PRIMARY KUNCI AUTO_INNCREMENT,

question_id INT NOT NULL,

kandungan TEKS BUKAN NULL,
FOREIGN KUNCI (soalan_id) RUJUKAN soalan(id)
);

-- Cipta jadual Jawapan INTISARI
Jawapan UTAMA
JAWAPAN UTAMA
CREATE AUTO_INCREMENT,

survey_id INT NOT NULL,

question_id INT NOT NULL,
option_id INT NOT NULL,
user_id INT NOT NULL,
dibuat_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
EId FORFERENS KUNCI (id_soalan) RUJUKAN soalan(id),
KUNCI ASING (option_id) RUJUKAN pilihan(id)
);

Untuk pelaksanaan khusus tinjauan soal selidik, kami boleh menggunakan PHP atau Bahasa pengaturcaraan lain untuk mengendalikan paparan halaman dan pemprosesan data. Berikut ialah kod contoh mudah:


Buat halaman tinjauan dan serahkan jawapan pengguna melalui borang.



<input type="hidden" name="survey_id" value="1">
<?php
    // 获取问题列表
    $questions = // 从数据库中查询问题列表的代码

    foreach ($questions as $question) {
        echo '<p>' . $question['content'] . '</p>';
        
        // 获取选项列表
        $options = // 从数据库中查询选项列表的代码

        foreach ($options as $option) {
            echo '<input type="checkbox" name="question_' . $question['id'] . '[]" value="' . $option['id'] . '"> ' . $option['content'] . '<br>';
        }
    }
?>
<input type="submit" value="提交">




Buat fail PHP (submit.php) untuk mengendalikan penyerahan borang.

// 获取用户提交的答案
$surveyId = $_POST['survey_id'];
$answers = $_POST; // 获取所有POST参数

foreach ($answers as $questionId => $optionIds) {
    if (strpos($questionId, 'question_') !== false) {
        $questionId = str_replace('question_', '', $questionId);
        
        // 保存答案到数据库
        foreach ($optionIds as $optionId) {
            // 将答案插入到answers表中的代码
        }
    }
}
  • ?>
  • 5 Ringkasan

    Dengan mereka bentuk struktur jadual MySQL secara rasional, kami boleh melaksanakan fungsi tinjauan soal selidik secara fleksibel dan memudahkan statistik dan analisis seterusnya. Semasa proses pelaksanaan khusus, perhatian perlu diberikan kepada korelasi dan pemprosesan logik jadual data untuk memastikan integriti dan ketepatan data.

    Atas ialah kandungan terperinci Bagaimana untuk mereka bentuk struktur jadual MySQL yang fleksibel untuk melaksanakan fungsi tinjauan soal selidik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn