مخطط قاعدة بيانات الاستطلاع
-
20-09-2019 - |
سؤال
ما هو أفضل مخطط قاعدة بيانات لاستطلاعات الرأي؟هل علاقة رأس بأطراف جيدة لهذا؟أفكر في الحصول على جدولين:
poll_questions
int id
varchar body
datetime created_at
datetime updated_at
poll_answers
int id
varchar body
int votes default 0
int question_id (foreign key to poll_questions.id)
datetime created_at
datetime updated_at
ثم سيكون هناك أيضًا جدول ثالث لتتبع من صوت للإجابة حتى يتمكن المستخدمون من التصويت مرة واحدة فقط:
poll_voting_history
int id
int question_id (foreign key to poll_questions.id)
int answer_id (foreign key to poll_answers.id)
int user_id (foreign key to the id in the users table)
datetime created_at
datetime updated_at
ما رأيك؟هل أفكر في الأمر بشكل صحيح؟
المحلول
والمخطط يبدو جيدا، ونعم، كنت بحاجة إلى <لأ href = "https://stackoverflow.com/questions/2260406/voting-stopping-abuse-from-client-side-asp-net-mvc / 2263045 # 2263045 "> تتبع الأصوات المستخدم بالإضافة .
نصائح أخرى
ملحوظة: إن "الأصوات" عمود من الجدول poll_answers ليست ضرورية. الأصوات يمكن تحديده من خلال الاستعلام عن الجدول Poll_voting_history.
وأعتقد أن question_id في poll_voting_history ليس من الضروري كذلك، لأن كل نقطة ردا على سؤال، مستندا في ذلك على answer_id يمكنك الحصول على question_id التي ينتمي إليها.
أود أن أضيف حالة من أسئلة الاستطلاع وإجابات الاستطلاع أيضًا، فقط في حالة الحاجة إلى تنشيط أو تعطيل سؤال الاستطلاع الحالي خلال التاريخ والوقت المحددين.