Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Model Basis Data untuk Survei Online. Bagian 2

Di bagian 1 dari seri artikel ini, kami membahas desain dasar untuk survei online. Sebagai penutup artikel itu, saya menyebutkan bagian 2 akan mencakup fitur yang lebih canggih untuk survei kami seperti:

  • Jenis pertanyaan yang berbeda seperti pertanyaan pilihan ganda
  • Urutan pertanyaan bersyarat dalam survei atau, dengan kata lain, kemungkinan jalur bersyarat melalui survei
  • Administrasi survei
  • Laporan dan analitik

Mari kita mulai dengan memperluas fungsionalitas untuk mendukung berbagai jenis pertanyaan.

Jenis Pertanyaan

Di bagian 1 dari rangkaian artikel ini, kami hanya menggunakan pertanyaan terbuka yang terdiri dari pertanyaan dan jawaban. Dalam artikel ini, kami akan mendefinisikan berbagai jenis pertanyaan seperti pertanyaan kutub (ya-tidak) dan pertanyaan pilihan ganda . Setiap pertanyaan akan dikaitkan dengan jenis. Untuk pertanyaan kutub, kami hanya akan mengizinkan ya/tidak sebagai jawaban, tetapi, di masa mendatang, kami dapat mengizinkan variasi seperti benar/salah. Pertanyaan yang tidak terbuka akan memiliki kemungkinan tanggapan yang dapat dipilih oleh responden.

Di masa mendatang, kami akan menambahkan pertanyaan yang memerlukan tanggapan yang dinilai. Misalnya, “Seberapa besar Anda menyukai desain database; beri peringkat antara 1 dan 100 (dengan 1 menunjukkan bahwa Anda sangat menyukainya dan 100 menunjukkan bahwa Anda sangat menyukainya)?”

Entitas dan Hubungan

Untuk berbagai jenis pertanyaan dalam survei, saya akan memperluas area “pertanyaan” dengan jenis dan pilihan jawaban.

Idealnya, saya ingin membuat kunci asing antara respons aktual dan kemungkinan respons untuk pertanyaan pilihan ganda (response_choice) untuk memastikan integritas data. Ini akan berhasil jika semua pertanyaan memiliki pilihan jawaban dan pertanyaan terbuka tidak diperbolehkan. Karena saya perlu mendukung pertanyaan terbuka, saya harus memastikan integritas tanggapan dalam kode aplikasi.

Desain Formal

Kita perlu memperluas ERD yang telah dibuat di bagian 1 dari rangkaian artikel ini. Seperti sebelumnya, saya akan menggunakan Vertabelo, pembuat model database online. Jika Anda belum memiliki akun Vertabelo, Anda dapat mendaftar untuk uji coba gratis di sini.

Saya akan membuat satu komentar; Anda akan menemukan bahwa saya biasanya menggunakan angka bulat seperti 100 atau 1000 untuk menentukan panjang bidang varchar; Saya tidak menyarankan bahwa ini adalah ukuran yang sesuai, tetapi saya menggunakan ini sebagai singkatan daripada membiarkan panjangnya tidak ditentukan. Saat Anda menggunakan model ini, harap sesuaikan panjangnya dengan kebutuhan khusus Anda. Misalnya, apakah Anda akan mengizinkan responden mengetik jawaban yang sangat panjang untuk pertanyaan terbuka – atau akankah Anda membatasinya, katakanlah, 1000 karakter? Ini mungkin bergantung pada aplikasi yang Anda bangun untuk menggunakan database, karena mungkin memiliki batasan pada panjang bidang.

Saya menambahkan tabel question_type yang ditautkan ke pertanyaan:ini mungkin memiliki nama "terbuka", "ya-tidak", "pilihan ganda", dan, di masa mendatang, "peringkat". Untuk pertanyaan pilihan ganda, setiap pertanyaan akan memiliki response_choices untuk dipilih.

Anda bahkan dapat menggunakan ini untuk menerapkan pertanyaan kutub, tetapi saya pikir itu berlebihan. Solusi lain adalah dengan menautkan response_choice ke question_type, sehingga baris question_type "ya-tidak" akan ditautkan ke baris response_choice "Ya" dan "Tidak", tetapi sekali lagi, saya rasa itu tidak perlu – tetapi Anda mungkin melakukannya jika Anda ingin kemungkinan multi-bahasa. Anda kemudian akan menyertakan bidang untuk bahasa responden dalam tabel response_choice, atau mengelola internasionalisasi pada antarmuka pengguna.




Saya telah mewarnai tabel yang dibuat di bagian 1 dalam warna  kuning  dan tabel yang baru ditambahkan dalam warna  oranye  sehingga lebih mudah untuk melihat penambahannya.

Kesimpulan

Sekarang kami telah mulai menerapkan peningkatan yang telah dibahas di bagian 1 dari rangkaian artikel ini.

Di artikel berikutnya, saya akan menambahkan lebih banyak dukungan untuk fitur berikut:

  • Urutan pertanyaan bersyarat dalam survei
  • Administrasi survei
  • Laporan dan analisis

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menjelajahi Modul API di Java 9

  2. T-SQL Selasa #64 :Satu Pemicu atau Banyak?

  3. Sorotan Hit dalam Pencarian Teks Lengkap

  4. Apa yang Dapat Diceritakan oleh Rencana Kueri?

  5. Meningkatkan Solusi Median Top / Top Descending