Database
 sql >> डेटाबेस >  >> RDS >> Database

एक ऑनलाइन सर्वेक्षण के लिए एक डेटाबेस मॉडल। भाग 4

चार-भाग श्रृंखला में इस अंतिम लेख में, मैं कई सर्वेक्षणों के लिए लचीलापन प्रदान करने के लिए एक ऑनलाइन सर्वेक्षण डेटाबेस के लिए डिज़ाइन को पूरा करता हूं, प्रश्नों का पुन:उपयोग, बहुविकल्पीय उत्तर, प्रश्नों का क्रम, प्रतिक्रियाओं के आधार पर सर्वेक्षण में सशर्त छलांग, और सर्वेक्षण स्वामियों के समूहों के माध्यम से सर्वेक्षण तक उपयोगकर्ताओं की पहुंच पर नियंत्रण।

परिचय

लेखों की इस श्रृंखला के भाग 3 के निष्कर्ष में, मैंने उल्लेख किया है कि मैं इस लेख में और अधिक उन्नत सुविधाएँ जोड़ूंगा। वे उन्नत सुविधाएं हैं:

  • प्रशासन सर्वेक्षणों के
  • रिपोर्ट और विश्लेषण

एक अनुस्मारक के रूप में, भाग 3 के बाद का मॉडल ये रहा:



प्रशासन

सर्वेक्षणों के प्रशासन में मेरा लक्ष्य एक सर्वेक्षण और उससे संबंधित जानकारी को एक समूह द्वारा प्रबंधित करने की अनुमति देना है। इसलिए मैं एक प्रशासनिक उपयोगकर्ता को उन उपयोगकर्ताओं के समूहों को परिभाषित करने में सक्षम करूंगा जो संयुक्त रूप से एक ऑनलाइन सर्वेक्षण और उसके प्रश्नों को बनाए रख सकते हैं। समूह का स्वामी परिभाषित कर सकता है कि समूह के अन्य उपयोगकर्ता कौन से कार्य कर सकते हैं; उदाहरण के लिए, जेफ़ सर्वेक्षणों और प्रश्नों को बदल सकता है और हटा सकता है, लेकिन जो केवल सर्वेक्षणों और प्रश्नों को देख सकता है, लेकिन उन्हें बदल या हटा नहीं सकता।

एक बात जो आप देख सकते हैं, वह यह है कि उपयोगकर्ता सर्वेक्षण में उत्तरदाताओं से अलग होते हैं। बेशक, कोई उपयोगकर्ता किसी सर्वेक्षण का जवाब भी दे सकता है, लेकिन मैं उन्हें अलग रखना चाहूंगा ताकि मुझे किसी उपयोगकर्ता की तुलना में किसी प्रतिवादी से कम जानकारी की आवश्यकता हो (उदाहरण के लिए, मैंने एक प्रतिवादी से पासवर्ड फ़ील्ड हटा दिया है ताकि वह लोगों के लिए लॉगिन/खाता बनाए बिना सर्वेक्षण का जवाब देना आसान है)।

मूल रूप से, इस प्रशासन के लिए, मैं समूहों और उपयोगकर्ताओं, और भूमिकाओं और संबंधित अनुमतियों या क्रियाओं की अनुमति के लिए तालिकाएँ बनाऊँगा। यह भूमिकाओं और प्रत्येक भूमिका द्वारा अनुमत कार्यों के बीच एक हार्ड-कोडेड लिंक के बजाय लचीलेपन की अनुमति देता है। बेशक, संबंधित एप्लिकेशन को यह समझने के लिए बनाया जाना चाहिए कि प्रत्येक अनुमति द्वारा किस कार्यक्षमता की अनुमति है और नई कार्यक्षमता जोड़े जाने पर इसे अनुकूलित किया जाना चाहिए, लेकिन कार्यक्षमता जोड़े जाने पर डेटाबेस डिज़ाइन को बदलने की आवश्यकता नहीं होगी - नई पंक्तियों को जोड़ा जाएगा भूमिकाओं को अनुमतियों से जोड़ने वाली तालिका।

आप यह भी देख सकते हैं कि मैंने email . के लिए एक विषम लंबाई का उपयोग किया है user . पर कॉलम और respondent ip_address . के लिए टेबल और विषम मान respondent . के लिए कॉलम; 254 अधिकतम लंबाई है जो एक ईमेल पता RFC परिभाषाओं के अनुसार हो सकता है, जबकि 45 अधिकतम लंबाई है जो एक IPv6 पता (IPv4 टनलिंग के साथ) हो सकती है।




इसके अलावा, मैं group . से एक लिंक जोड़ूंगा survey . के लिए तालिका वह तालिका जिससे लिंक सभी संबद्ध तालिकाओं में जाते हैं (question_order , survey_response , conditional_order , question_type , response_choice ) इस तरह, जब समूह हटाया जा रहा है, तो मैं समूह के मालिक को चेतावनी दे सकता हूं कि सभी संबंधित जानकारी हटा दी जाएगी।

मैं तालिका डेटा को विशिष्ट उपयोगकर्ता के अलावा किसी अन्य चीज़ से जोड़ने के इस दृष्टिकोण को पसंद करता हूं, डेटा को किसी भी चीज़ से लिंक नहीं करना। यदि हमने डेटा को किसी भी चीज़ (न तो समूह और न ही उपयोगकर्ता) से लिंक नहीं किया है जैसा कि मैंने लेखों की इस श्रृंखला के पिछले भागों में किया था, तो हमारे पास ऑनलाइन सर्वेक्षण से उपयोगकर्ता को हटा दिए जाने पर पुराने डेटा को "क्लीनअप" करने की चुनौती होगी। आवेदन पत्र। इसे अधिक अमूर्त अवधारणा "समूह" से जोड़कर, मालिक के लिए समूह के स्वामित्व और सभी संबंधित डेटा (सर्वेक्षण, प्रश्न, प्रतिक्रियाएं, आदि) को समूह के किसी अन्य सदस्य को फिर से सौंपना संभव हो जाता है यदि आवश्यक हो।

औपचारिक डिजाइन

फिर हम लेखों की इस श्रृंखला के अन्य भागों में बनाए गए ईआरडी का विस्तार करते हैं।




मैंने भाग 1 लेख में बनाई गई तालिकाओं को पीले रंग में रंगा है, भाग 2 में जोड़ी गई तालिकाओं को नारंगी रंग में रंगा है, भाग 3 में जोड़ी गई तालिकाओं को हरे रंग में और नई जोड़ी गई तालिकाओं को हल्के नीले रंग में रंगा है ताकि यह आसान हो जोड़ देखें। इस अंतिम लेख में जोड़े गए कॉलम और विदेशी कुंजियों में रंग नहीं जोड़ा गया था, इसलिए अंतर देखने के लिए आपको मौजूदा मॉडल की तुलना भाग 3 के पिछले मॉडल से करनी होगी।

रिपोर्ट और विश्लेषण

हमारे पास पर्याप्त जानकारी है जिसे कई रिपोर्ट तैयार करने के लिए तालिकाओं से निकाला जा सकता है।

उदाहरण के लिए, किन प्रश्नों का उत्तर एक विशेष तरीके से दिया गया ("सर्वेक्षण 7 पर, उत्तरदाताओं ने प्रश्न 10 के लिए कितनी बार 'हां' का उत्तर दिया?")। सर्वेक्षण प्रतिक्रियाओं के बारे में बुनियादी रिपोर्ट के लिए जानकारी का यह स्तर शायद ठीक है।

हम यह भी निकाल सकते हैं कि किसी विशेष सर्वेक्षण का जवाब देने में उत्तरदाताओं को कितना समय लगा ("सर्वेक्षण 5 पर, सर्वेक्षण पर बिताया गया औसत समय 13 मिनट था"); फिर से, यह उपयोगी जानकारी हो सकती है ताकि सर्वेक्षण के मालिक सर्वेक्षण प्रश्नों को समायोजित कर सकें ताकि उन्हें उस समय से अधिक समय की आवश्यकता न हो जो एक सामान्य उत्तरदाता खर्च करने को तैयार है या सर्वेक्षणकर्ता ने उत्तरदाताओं से "वादा" किया है (उदाहरण के लिए, "यह सर्वेक्षण" 5 से 10 मिनट के बीच लेना चाहिए")। मुझे पता है कि जब कोई मुझसे कहता है कि मुझे 10 मिनट से भी कम समय में किया जाना चाहिए और मैं अभी भी 15 मिनट बाद भी प्रश्नों को हल कर रहा हूं, तो मुझे गुस्सा आता है और मैं आम तौर पर उनके किसी अन्य सर्वेक्षण का जवाब देने के लिए तैयार नहीं हूं।

उत्तरदाताओं के आईपी पते के आधार पर, हम कुछ रिवर्स लुकअप कर सकते हैं ताकि यह अनुमान लगाया जा सके कि उत्तरदाता कहां से हैं या कम से कम उनका आईपी पता कहां से है जब उन्होंने जवाब दिया था। ध्यान रखें कि यह जानकारी पूरी तरह से विश्वसनीय नहीं है क्योंकि लोग वीपीएन या अन्य तंत्रों के माध्यम से जुड़ सकते हैं जो उनके आईपी पते को उनके भौतिक स्थान से अलग कर देते हैं।

हम यह भी निकाल सकते हैं कि पहले उत्तरदाताओं द्वारा प्रश्नों का उत्तर कैसे दिया गया और बाद के उत्तरदाताओं द्वारा इसका उत्तर कैसे दिया गया। यह आपके सर्वेक्षण पर एक दिलचस्प दृष्टिकोण प्रस्तुत कर सकता है - उदाहरण के लिए, क्या उत्सुक लोगों ने सर्वेक्षण का जवाब दिया, जो पहले उन लोगों की तुलना में अलग तरह से प्रतिक्रिया करते थे जो बाद में सर्वेक्षण के लिए उत्सुक नहीं थे और बाद में जवाब दिया था?

इस स्तर पर, मुझे लगता है कि ये रिपोर्टें पर्याप्त होंगी और अधिक उन्नत विश्लेषण आवश्यक नहीं हैं, क्योंकि सबसे महत्वपूर्ण जानकारी स्पष्ट रूप से एक सर्वेक्षण में प्रत्येक प्रश्न के उत्तर की मूल रिपोर्ट है। यदि आपको अधिक उन्नत विश्लेषिकी की आवश्यकता है, तो विचार करें कि आपकी आवश्यकताएं क्या हैं और मौजूदा डेटा या नई संरचनाएं उन विश्लेषणों का समर्थन कैसे कर सकती हैं।

निष्कर्ष

आखिर तुमने इसे हासिल कर ही लिया है। मैं यह दावा नहीं करूंगा कि यह आदर्श ऑनलाइन सर्वेक्षण डेटाबेस के लिए डिज़ाइन है, लेकिन यह लचीलेपन के संदर्भ में मेरी ज़रूरतों को पूरा करेगा:एकाधिक सर्वेक्षण, प्रश्न पुन:उपयोग, बहुविकल्पीय उत्तर, प्रश्नों का क्रम, सर्वेक्षण में सशर्त छलांग के आधार पर प्रतिक्रियाएँ, और सर्वेक्षण स्वामियों के समूहों के माध्यम से सर्वेक्षणों तक उपयोगकर्ताओं की पहुँच पर नियंत्रण।

जैसा कि मैंने लेखों की इस श्रृंखला के प्रत्येक पिछले भाग में किया है, मैं बताऊंगा कि आपकी अन्य आवश्यकताएं भी हो सकती हैं। अपनी आवश्यकताओं की पहचान करें और आपको जो चाहिए उसे लागू या अनुकूलित करें। मैं पहिए के पुन:उपयोग में दृढ़ता से विश्वास करता हूं और पहिया का पुन:आविष्कार नहीं करता हूं।


यदि आप चाहते हैं कि हम आपके आवेदन की आवश्यकताओं के अनुसार इस मॉडल को फिर से डिज़ाइन या विस्तारित करें, तो हमें बताएं। हम आपकी मदद कर सकते हैं।


एक ऑनलाइन सर्वेक्षण के लिए एक डेटाबेस मॉडल - €“ पूरी श्रृंखला

भाग 1 भाग 2 भाग 3 भाग 4

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 0 से 60 :अप्रत्यक्ष चौकियों पर स्विच करना

  2. FORMAT() अच्छा और सब कुछ है, लेकिन…

  3. SQL में Cursor क्या है और इसे कैसे कार्यान्वित करें?

  4. स्मार्ट होम डेटा मॉडल

  5. पबनब के कार्यों के लिए एक गाइड