Подтвердить что ты не робот

Схема базы данных опросов

Какая лучшая схема базы данных для опросов? Являются ли отношения "один ко многим" полезными для этого? Я думаю о наличии двух таблиц:

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

Каковы ваши мысли? Я думаю об этом правильно?

4b9b3361

Ответ 2

Примечание. Столбец "голосов" таблицы poll_answers не требуется. Голоса могут быть определены путем запроса таблицы Poll_voting_history.

Ответ 3

Я думаю, что question_id в poll_voting_history тоже не нужен, поскольку каждый ответ указывает на вопрос, поэтому на основе answer_id вы можете получить question_id, к которому он принадлежит.

Ответ 4

Я также хотел бы добавить статус для poll_questions и poll_answers, на случай, если нам потребуется активировать или отключить текущий вопрос опроса в течение указанной даты и времени.