Dalam artikel terakhir dalam seri empat bagian ini, saya menyelesaikan desain database survei online untuk memberikan fleksibilitas untuk beberapa survei, penggunaan kembali pertanyaan, jawaban pilihan ganda, urutan pertanyaan, lompatan bersyarat dalam survei berdasarkan tanggapan, dan kontrol atas akses pengguna ke survei melalui grup pemilik survei.
Pengantar
Sebagai penutup Bagian 3 dari rangkaian artikel ini, saya menyebutkan bahwa saya akan menambahkan lebih banyak fitur lanjutan dalam artikel ini. Fitur-fitur canggih tersebut adalah:
- administrasi survei
- laporan dan analitik
Sebagai pengingat, ini adalah model setelah Bagian 3:
Administrasi
Tujuan saya dalam administrasi survei adalah untuk memungkinkan survei dan informasi terkait untuk dikelola oleh kelompok. Jadi saya akan memungkinkan pengguna administratif untuk menentukan grup pengguna yang dapat bersama-sama mengelola survei online dan pertanyaannya. Pemilik grup dapat menentukan fungsi apa yang dapat dilakukan oleh pengguna grup lainnya; misalnya, Jeff dapat mengubah dan menghapus survei dan pertanyaan, tetapi Joe hanya dapat melihat survei dan pertanyaan, tetapi tidak dapat mengubah atau menghapusnya.
Satu hal yang mungkin Anda perhatikan adalah bahwa pengguna terpisah dari responden survei. Tentu saja, pengguna mungkin juga menanggapi survei, tetapi saya ingin memisahkannya sehingga saya dapat meminta lebih sedikit informasi dari responden daripada dari pengguna (misalnya, saya telah menghapus bidang kata sandi dari responden sehingga lebih mudah bagi orang untuk menanggapi survei tanpa membuat login/akun).
Pada dasarnya, untuk administrasi ini, saya akan membuat tabel untuk grup dan pengguna, serta peran dan izin terkait atau tindakan yang diizinkan. Hal ini memungkinkan adanya fleksibilitas daripada hubungan yang dikodekan antara peran dan tindakan yang diizinkan oleh masing-masing peran. Tentu saja, aplikasi yang sesuai harus dibangun untuk memahami fungsionalitas apa yang diizinkan oleh setiap izin dan harus disesuaikan ketika fungsionalitas baru ditambahkan, tetapi desain basis data tidak perlu diubah ketika fungsionalitas ditambahkan – baris baru akan ditambahkan ke tabel yang menautkan peran ke izin.
Anda mungkin juga memperhatikan bahwa saya telah menggunakan panjang yang aneh untuk email
kolom pada user
dan respondent
tabel dan nilai ganjil untuk ip_address
kolom untuk respondent
; 254 adalah panjang maksimum alamat email menurut definisi RFC, sedangkan 45 adalah panjang maksimum alamat IPv6 (dengan tunneling IPv4).
Selain itu, saya akan menambahkan tautan dari group
tabel ke survey
tabel dari mana tautan menuju semua tabel terkait (question_order
, survey_response
, conditional_order
, question_type
, response_choice
). Dengan cara itu, ketika grup sedang dihapus, saya dapat memperingatkan pemilik grup bahwa semua informasi terkait akan dihapus.
Saya lebih suka pendekatan menautkan data tabel ini ke sesuatu selain pengguna tertentu dibandingkan tidak menautkan data ke apa pun. Jika kami tidak menautkan data ke apa pun (baik grup maupun pengguna) seperti yang tampaknya saya lakukan di bagian sebelumnya dari rangkaian artikel ini, maka kami akan memiliki tantangan untuk "membersihkan" data basi ketika pengguna dihapus dari survei online aplikasi. Dengan mengaitkannya dengan konsep "kelompok" yang lebih abstrak, maka pemilik dapat menetapkan kembali kepemilikan grup dan semua data terkait (survei, pertanyaan, tanggapan, dll.) kepada anggota lain dari grup jika perlu.
Desain Formal
Kemudian kami memperluas ERD yang telah dibuat di bagian lain dari rangkaian artikel ini.
Saya telah mewarnai tabel yang dibuat di artikel Bagian 1 dengan warna kuning, mewarnai tabel yang ditambahkan di Bagian 2 dengan warna oranye, mewarnai tabel yang ditambahkan di Bagian 3 dengan warna hijau, dan tabel yang baru ditambahkan dengan warna biru muda agar lebih mudah untuk lihat tambahannya. Warna tidak ditambahkan ke kolom dan kunci asing yang ditambahkan dalam artikel terakhir ini, jadi Anda harus membandingkan model saat ini dengan model sebelumnya dari Bagian 3 untuk melihat perbedaannya.
Laporan dan Analisis
Kami memiliki cukup informasi yang dapat diambil dari tabel untuk menghasilkan beberapa laporan.
Misalnya, pertanyaan mana yang dijawab dengan cara tertentu ("pada survei 7, berapa kali responden menjawab 'Ya' untuk pertanyaan 10?"). Tingkat informasi ini mungkin cocok untuk laporan dasar tentang tanggapan survei.
Kami juga dapat mengekstrak berapa lama waktu yang dibutuhkan responden untuk menanggapi survei tertentu (“pada survei 5, waktu rata-rata yang dihabiskan untuk survei adalah 13 menit”); sekali lagi, ini mungkin informasi yang berguna sehingga pemilik survei dapat menyesuaikan pertanyaan survei sehingga mereka tidak memerlukan lebih banyak waktu daripada yang bersedia dihabiskan oleh responden biasa atau apa yang "dijanjikan" oleh surveior kepada responden (misalnya, "survei ini harus memakan waktu antara 5 dan 10 menit"). Saya tahu bahwa ketika seseorang memberi tahu saya bahwa saya harus selesai dalam waktu kurang dari 10 menit dan saya masih mengerjakan pertanyaan 15 menit kemudian, maka saya marah dan biasanya saya tidak mau menanggapi survei lain dari mereka.
Berdasarkan alamat IP responden, kami dapat melakukan pencarian terbalik untuk mengetahui perkiraan dari mana responden berasal atau setidaknya dari mana alamat IP mereka muncul saat mereka merespons. Ketahuilah bahwa informasi ini tidak sepenuhnya dapat diandalkan karena orang dapat terhubung melalui VPN atau mekanisme lain yang memisahkan alamat IP mereka dari lokasi fisik mereka.
Kami bahkan dapat mengekstraksi bagaimana pertanyaan dijawab oleh responden pertama versus bagaimana pertanyaan itu dijawab oleh responden terakhir. Ini dapat menyajikan dan sudut pandang yang menarik pada survei Anda –€“ misalnya, apakah orang-orang yang bersemangat yang menanggapi survei pertama-tama merespons secara berbeda dari orang-orang yang tidak begitu bersemangat dan kemudian menanggapi survei?
Pada tahap ini, saya pikir laporan ini sudah cukup dan analisis lanjutan tidak diperlukan, karena informasi yang paling penting jelas merupakan laporan dasar tentang jawaban yang diberikan untuk setiap pertanyaan dalam survei. Jika Anda memerlukan analitik yang lebih canggih, pertimbangkan apa persyaratan Anda dan bagaimana data yang ada atau struktur baru dapat mendukung analitik tersebut.
Kesimpulan
Dan di sana Anda memilikinya. Saya tidak akan mengklaim bahwa ini adalah desain untuk database survei online yang ideal, tetapi ini akan memenuhi kebutuhan saya dalam hal fleksibilitas:beberapa survei, penggunaan kembali pertanyaan, jawaban pilihan ganda, urutan pertanyaan, lompatan bersyarat dalam survei berdasarkan tanggapan, dan kontrol atas akses pengguna ke survei melalui grup pemilik survei.
Seperti yang telah saya lakukan di setiap bagian sebelumnya dari rangkaian artikel ini, saya akan menunjukkan bahwa Anda mungkin memiliki persyaratan lain. Identifikasi kebutuhan Anda dan terapkan atau sesuaikan apa yang Anda butuhkan. Saya sangat percaya pada penggunaan kembali dan bukan penemuan kembali roda.
Jika Anda ingin kami mendesain ulang atau memperluas model ini sesuai dengan kebutuhan aplikasi Anda, beri tahu kami. Kami dapat membantu Anda.
Model database untuk survei online –€“ keseluruhan rangkaian