سؤال

ما هو أفضل مخطط قاعدة بيانات لاستطلاعات الرأي؟هل علاقة رأس بأطراف جيدة لهذا؟أفكر في الحصول على جدولين:

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 التي ينتمي إليها.

أود أن أضيف حالة من أسئلة الاستطلاع وإجابات الاستطلاع أيضًا، فقط في حالة الحاجة إلى تنشيط أو تعطيل سؤال الاستطلاع الحالي خلال التاريخ والوقت المحددين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top