জরিপ ডাটাবেস ডিজাইন: একটি ব্যবহারকারীর একটি উত্তর যুক্ত


12

আমি একটি জরিপ ডাটাবেসের জন্য ধারণামূলক মডেল করছি।

লক্ষ্যটি হল ব্যবহারকারীদের দেওয়া উত্তরগুলি সঞ্চয় করা (এটি একটি অ্যান্ড্রয়েড অ্যাপ হতে চলেছে)।

আমার তিনটি সত্তা রয়েছে: ব্যবহারকারী, প্রশ্ন এবং বিকল্প।

একটি প্রশ্নের এক বা একাধিক বিকল্প থাকবে (উদাহরণস্বরূপ: আপনার কতজন কর্মচারী আছেন? 1-40, 40-1000, +1000)?

বিকল্পগুলির একটি পাঠ্য থাকবে (1-40) এবং একটি মান (ব্যবহারকারী দ্বারা নির্বাচিত মান)।

ব্যবহারকারী এই বিকল্পগুলির মধ্যে একটি (বা আরও) নির্বাচন করবেন।

আমার ধারণামূলক নকশাটি হ'ল:

এখানে চিত্র বর্ণনা লিখুন

কোনও ব্যবহারকারীর সাথে কীভাবে উত্তর যুক্ত করতে হয় তা আমি জানি না।

আমি কীভাবে সেই সম্পর্ককে উপস্থাপন করতে পারি?
বিকল্প মান উপস্থাপন করার জন্য আমার কাছে কি অন্য সত্ত্বা আছে?

এই মডেলটি প্রশ্ন এবং প্রাক-তৈরি উত্তর (প্রস্তাবিত উত্তরগুলি) সংরক্ষণ করবে এবং তাদের বিভিন্ন সমীক্ষায় পুনরায় ব্যবহার করার অনুমতি দেয়।

আমাকে এই জাতীয় প্রশ্নের প্রতিনিধিত্ব করতে হবে:

এখানে চিত্র বর্ণনা লিখুন

এই প্রশ্নটি এই সম্পর্কিত: জরিপ ডাটাবেস ডিজাইন: প্রথম সংস্করণ। ত্রুটি আছে?


1
দেখে মনে হচ্ছে ব্যবহারকারী এবং বিকল্পগুলির মধ্যে বহু-বহু-সম্পর্কের পরিচালনা করতে আপনার অন্য টেবিলের প্রয়োজন হবে।
অলিভারআস্মাস

উত্তর:


7

আপনার সম্ভাব্য উত্তর এবং নির্বাচিত উত্তরগুলির মধ্যে একটি পার্থক্য তৈরি করতে হবে ।

Optionটেবিল দুই টেবিল হতে হবে। Optionসারণি 1 হওয়া উচিত: এম করার Questionএবং যে প্রশ্নের জন্য সম্ভাব্য উত্তর অন্তর্ভুক্ত করা উচিত।

তারপর আপনি, সেটিতে কল একটি নতুন ছেদ সত্তা করতে হবে Selected_Optionযার মধ্যে অস্ত যায় Userএবং Option

যদি আপনার প্রশ্ন ব্যবহারকারীকে একটি উত্তর হিসাবে একটি মান পূরণ করার সুযোগ দেয় (অর্থাত "" OTHER: ... ") তবে এই মানটি Selected_Optionসারণীতে সংরক্ষণ করা হবে । অন্যথায় ব্যবহারকারী দ্বারা নির্বাচিত মানটি পাওয়া মান হবে Option


সম্পাদনা করুন:

ওপি'র প্রয়োজনীয়তার স্পষ্টতার উপর ভিত্তি করে: আপনার যা প্রয়োজন তা নিম্নলিখিত উপায়ে একটি সাধারণ প্রশ্নাবলী মডেলের মতো নয়:

  • আপনার প্রশ্নের সকলের উত্তরগুলির একই সেট রয়েছে (কলাম)
  • আপনার কিছু উত্তর (কলাম) একসাথে গোষ্ঠীযুক্ত।
  • প্রশ্নগুলির ব্লকগুলি একত্রে গ্রুপ করা হয়।

গাইড হিসাবে আপনার ফর্ম স্ন্যাপশটটি গ্রহণ করে, আমি আপনার ফর্মের উপাদানগুলিকে সত্ত্বায় বিভক্ত করেছি যা আমি রঙিন কোডেড করেছি:

রঙিন কোডেড ফর্ম উদাহরণ

এটি নিম্নলিখিত যৌক্তিক ইআরডি দ্বারা সমন্বিত করা যেতে পারে:

লজিকাল ইআরডি

নোট করুন যে আমি ইআরডি-তে সন্নিবেশকে দেখানোর জন্য আপনার নমুনা ফর্মের স্ন্যাপশটের সাথে মিল রেখে সত্তাগুলি কোড করেছি।

এই মডেলের অনুমানগুলির মধ্যে একটি হ'ল প্রতিটি ব্লকে কুইকিটনগুলির একটি মাত্র সেট থাকে (যেমন একটি QUESTION_GROUP) যা ব্লকের বাম-হাতের কলামের সাথে মিলে যায়। এটি একটি সরলকরণ অনুমান একটি বিট।


আমি টিপিকাল জরিপ প্রশ্নের একটি চিত্র সহ আমার প্রশ্নটি আপডেট করেছি।
ভ্যানসফ্যানেল

1
@ ভ্যানফ্যানেল - আপনার সম্পাদিত প্রশ্নটি প্রতিবিম্বিত করতে আমি আমার উত্তর আপডেট করেছি।
জোয়েল ব্রাউন

আপনাকে অনেক ধন্যবাদ! আপনি আমাকে অনেক সাহায্য করেছেন। আমি এখানে একটি প্রশ্ন হিসাবে আমার চূড়ান্ত নকশা যুক্ত করেছি: dba.stackexchange.com/questions/16066/… আপনি চান কিনা এটি পরীক্ষা করতে পারেন।
ভ্যানসফ্যানেল

একটি প্রশ্ন: "ক্রম" এবং "মান" এর অর্থ কী? আমি ইআরডি নিয়ে এত বেশি কাজ করি নি (দুঃখিত)।
ভ্যানসফ্যানেল

@ ভ্যানফ্যানেল - ইআরডি-তে বিশিষ্ট নোটগুলি সারণীতে কেবল অ-তুচ্ছ (বা স্পষ্ট নয়) কলামগুলি। আমি প্রত্যাশা করি যে আপনি কোথায় আইডি, এফকে, বিবরণ ইত্যাদি স্থাপন করবেন তা অনুমান করার জন্য sequenceআমি প্রস্তাব দিচ্ছি যে আপনার প্রয়োজন / আইটেমগুলি প্রদর্শিত হবে তা ক্রম নিয়ন্ত্রণ করতে চান। যেহেতু valueআমি ইঙ্গিত করছি যে একটি ব্যবহারকারী-প্রবেশ মূল্য (কেবল একটি বিকল্প নির্বাচন নয়) উপযুক্ত হতে পারে।
জোয়েল ব্রাউন

13

জরিপ ডাটাবেস স্কিমা।

এটি একটি আসল ক্লাসিক, হাজার দ্বারা করা। এগুলি শুরু করার জন্য তারা সর্বদা 'মোটামুটি সহজ' বলে মনে হয় তবে ভাল হওয়া এটি আসলে বেশ জটিল। রেলগুলিতে এটি করতে আমি সংযুক্ত চিত্রটিতে প্রদর্শিত মডেলটি ব্যবহার করব। আমি নিশ্চিত যে এটি কারও কারও কাছে জটিল মনে হয়েছে তবে কয়েক বছরের মধ্যে একবার আপনি কয়েকটি তৈরি করেছেন, আপনি বুঝতে পেরেছেন যে বেশিরভাগ ডিজাইনের সিদ্ধান্তগুলি খুব ক্লাসিক নিদর্শন, এটি একটি ডায়নামিক নমনীয় ডেটা কাঠামো দ্বারা সেরা সম্বোধন করা হয় গোড়াতেই।
নীচে আরও বিশদ:

এখানে চিত্র বর্ণনা লিখুন

কী টেবিলগুলির জন্য সারণির বিশদ

উত্তর

উত্তর টেবিল সমালোচনামূলক যেমন ব্যবহারকারীদের দ্বারা প্রকৃত প্রতিক্রিয়া ধরা। আপনি যে উত্তর সংযোগগুলি বিজ্ঞপ্তি পাবেন question_options না প্রশ্ন । এটা ইচ্ছাকৃত।

input_types

ইনপুট_ টাইপগুলি প্রশ্নের ধরণ the প্রতিটি প্রশ্ন কেবল 1 ধরণের হতে পারে, যেমন সমস্ত রেডিও ডায়াল, সমস্ত পাঠ্য ক্ষেত্র (গুলি) ইত্যাদি additional যখন "বলুন" এর জন্য 5 টি রেডিও-ডায়াল এবং 1 চেক বাক্স থাকে তখন অতিরিক্ত প্রশ্নগুলি ব্যবহার করুন? বিকল্প বা এই জাতীয় কিছু সংমিশ্রণ। ব্যবহারকারীদের দুটি প্রশ্নকে একটি হিসাবে লেবেল করুন তবে অভ্যন্তরীণভাবে দুটি প্রশ্ন রয়েছে, একটি রেডিও-ডায়ালগুলির জন্য, একটি চেক বাক্সের জন্য। এই ক্ষেত্রে চেকবক্সের একটি গ্রুপ থাকবে।

option_groups

বিকল্প_গোষ্ঠী এবং অপশন_চয়েজ আপনাকে 'সাধারণ' গ্রুপ তৈরি করতে দেয়। একটি উদাহরণ, একটি রিয়েল এস্টেট আবেদনে প্রশ্ন থাকতে পারে 'সম্পত্তিটি কত বছরের পুরানো?' উত্তরগুলি সীমার মধ্যে পছন্দসই হতে পারে: 1-5 6-10 10-25 25-100 100+

তারপরে, উদাহরণস্বরূপ, যদি সংলগ্ন সম্পত্তির বয়স সম্পর্কে কোনও প্রশ্ন থাকে তবে সমীক্ষা উপরের রেঞ্জগুলিকে 'পুনরায়' ব্যবহার করতে চাইবে, যাতে একই বিকল্প_গ্রুপ এবং বিকল্পগুলি ব্যবহার করতে পারে।

পরিমাপ ইউনিট

ইউনিট_ম_মাজার মতো শোনাচ্ছে। এটি ইঞ্চি, কাপ, পিক্সেল, ইট বা যাই হোক না কেন, আপনি এখানে একবার এটি সংজ্ঞা দিতে পারেন।

এফওয়াইআই: জেনেরিক প্রকৃতির হলেও, এটির উপরে একটি অ্যাপ্লিকেশন তৈরি করা যায় এবং প্রতিটি স্ক্রিনের প্রাথমিক কীটির জন্য "আইডি" এর মতো কনভেনশনগুলির সাথে এই স্কিমাটি রুবি অন রেল ফ্রেমওয়ার্কের সাথে উপযুক্ত । এছাড়াও সম্পর্কগুলি সমস্ত সরল এক_ম_এর সাথে অনেকগুলি_মানুষী বা has_many এর দরকার নেই। আমি সম্ভবত has_many যোগ করতে হবে: মাধ্যমে এবং / অথবা: প্রতিনিধিদের যদিও পৃথক উত্তর থেকে জরিপ_নামের মতো জিনিস সহজেই পাওয়া যায় to


গ্রেট! আপনার উত্তরের জন্য ধন্যবাদ. আমি এটি দিয়ে অনেক শিখতে হবে। ধন্যবাদ.
ভ্যানসফ্যানেল

দুর্দান্ত উত্তর। খুব কার্যকর যেহেতু আমি এখনই একই ধরণের ডিজাইনের সমস্যার সাথে লড়াই করছি। :)
ডাঃ মাইক

এটি নির্বাচিত উত্তর হওয়া উচিত ছিল। খুব সহায়ক, ধন্যবাদ!
ডিজাইনার

@ মিশেল "আপনি লক্ষ্য করবেন যে প্রশ্নের উত্তরগুলির সাথে লিঙ্কগুলির উত্তর দেওয়া হয়েছে, প্রশ্ন নয় This এটি উদ্দেশ্যমূলক।" আপনি দয়া করে কেন আরও ব্যাখ্যা প্রদান করতে পারেন? :)
পাক

@ মিশেল হাই, দুর্দান্ত উত্তর! আপনি যদি কোনও HTML পৃষ্ঠায় কিছু প্রশ্নের সিএসএস কাস্টমাইজ করতে সক্ষম হন তবে আপনি এটি কীভাবে করবেন? আমি আমার সংস্থাগুলির টেবিলে একটি সিএসএসফিল সম্পত্তি তৈরি করেছি তবে একটি প্রশ্ন স্তরে আমার আরও সুনির্দিষ্ট হওয়া দরকার। ধন্যবাদ।
প্যাট্রিক

2

এই সাধারণ ধারণাটি একবার দেখুন:

এখানে চিত্র বর্ণনা লিখুন

(শুধুমাত্র সবচেয়ে প্রয়োজনীয় ক্ষেত্রগুলি বর্ধনের জন্য উপরের মডেলটিতে অন্তর্ভুক্ত রয়েছে))

এই মডেলের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

  • একক প্রশ্ন একাধিক সমীক্ষার মধ্যে ভাগ করা যায় (এবং একক সমীক্ষা অবশ্যই একাধিক প্রশ্ন থাকতে পারে)। SURVEY_QUESTION হ'ল "লিঙ্ক" টেবিল যা এই এম: এন সম্পর্ককে কার্যকর করে।
  • জরিপে প্রশ্নের ক্রম SURVEY_QUESTION.QUESTION_NO দ্বারা নির্ধারিত হয়। যেহেতু {SURVEY_NO, QUESTION_NO an একটি (বিকল্প) কী, U1উপরের চিত্রটিতে বোঝানো হয়েছে, একই সমীক্ষায় কোনও দুটি প্রশ্ন একই "স্লট" দখল করতে পারে না। বিভিন্ন সমীক্ষায় আলাদা ক্রমে একই প্রশ্ন থাকতে পারে।
  • প্রতিটি প্রশ্নের সম্ভাব্য উত্তর বা "বিকল্প" এর একটি সিরিজ রয়েছে। অপশনগুলির ভিজ্যুয়াল ক্রমটি অপশন দ্বারা নির্ধারিত হয়। অপশন_নো এবং যেহেতু এটি পিকে রয়েছে, কোনও দুটি বিকল্প একই প্রশ্নের অধীনে একই "স্লট" দখল করতে পারে না।
  • বিভিন্ন ব্যবহারকারী একই প্রশ্নের বিভিন্ন উত্তর প্রদান করতে পারে (এবং অবশ্যই এক ব্যবহারকারী একাধিক প্রশ্নের উত্তর দিতে পারে)। এই এম: এন সম্পর্কটি "লিঙ্ক" টেবিলের মাধ্যমে প্রয়োগ করা হয়েছে উত্তর।
  • কোনও ব্যবহারকারী তার বেশিরভাগ বিকল্পগুলির মধ্যে একটি চয়ন করে প্রশ্নের উত্তর দেয় । এটি ANSWER এর পিকে থেকে অপশন_নো বাদ দিয়ে নিশ্চিত করা হয়েছে । আপনি যদি ব্যবহারকারীকে একাধিক বিকল্প নির্বাচন করার অনুমতি দিতে চান তবে পিকে-তে অপশন_নো অন্তর্ভুক্ত করুন।

এই ডেটা মডেলটিতে এমন কোনও কিছুই নেই যা ব্যবহারকারীকে সমস্ত প্রশ্নের উত্তর দিতে বাধ্য করে - এটি এমন একটি যা আপনার অ্যাপ্লিকেশন পর্যায়ে করতে হবে। তা সত্ত্বেও, আপনাকে যা করতে হবে তার জন্য এই মডেলটি একটি ভাল শুরু হওয়া উচিত ...


আমি টিপিকাল জরিপ প্রশ্নের একটি চিত্র সহ আমার প্রশ্নটি আপডেট করেছি।
ভ্যানসফ্যানেল

1

ব্যবহারকারীদের উত্তর ধরে রাখতে আপনার অন্য একটি টেবিলের প্রয়োজন হবে।

user_answers
------------
  user_answer_id - অনন্য প্রাথমিক কী
  ইউজার_আইডি - এফকে ইউজার টেবিল
  চয়ন করা_পশন_আইডি - বিকল্প টেবিল এফকে
  প্রশ্ন_আইডি - এফকে থেকে প্রশ্ন সারণী

আপনি যদি সিদ্ধান্ত নেন যে ব্যবহারকারীরা বিকল্প হিসাবে "অন্যান্য" নির্বাচন করতে এবং তাদের নিজস্ব মান পূরণ করতে সক্ষম হন তবে আমি তার জন্য একটি পৃথক সারণির পরামর্শ দেব:

user_alt_answers
----------------
  ব্যবহারকারীর_ল্ট_সনওয়ার_আইডি - পিকে
  alt_answer_text - ব্যবহারকারী একটি "অন্য" বিকল্পের জন্য প্রবেশ করানো পাঠ্য।
  ইউজার_আসওআর_আইডি - এফকে ইউজার_ওয়াসার সারণিতে

আমি টিপিকাল জরিপ প্রশ্নের একটি চিত্র সহ আমার প্রশ্নটি আপডেট করেছি।
ভ্যানসফ্যানেল

0

[আমি এখনও মন্তব্য করতে পারি না, সুতরাং এটি একটি উত্তর হিসাবে]

ভ্যানফ্যানেল উপস্থাপিত সমাধানের জন্য, আমি সেখানে আরও একটি সম্পূর্ণ মডেল তৈরি করেছি।

দয়া করে এখানে এটি পরীক্ষা করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.